Skip to content

Conversation

@tassoevan
Copy link
Contributor

@tassoevan tassoevan commented Sep 10, 2025

Proposed changes (including videos or screenshots)

Issue(s)

ARCH-1803

Steps to test or reproduce

Further comments

Summary by CodeRabbit

  • Style

    • Adjusted horizontal chart label alignment for improved readability.
  • Chores

    • Upgraded and standardized dependency versions across the workspace (UI libraries, icons, string-helpers, WebSocket, Babel tooling, TypeScript, Yarn/package manager, etc.) for consistency and stability.
  • Tests

    • Updated testing and build tooling (Jest, Testing Library, ts-jest, Storybook, TypeDoc) to newer patch/minor releases.

@tassoevan tassoevan added this to the 7.11.0 milestone Sep 10, 2025
@dionisio-bot
Copy link
Contributor

dionisio-bot bot commented Sep 10, 2025

Looks like this PR is not ready to merge, because of the following issues:

  • This PR is targeting the wrong base branch. It should target 7.12.0, but it targets 7.11.0

Please fix the issues and try again

If you have any trouble, please check the PR guidelines

@changeset-bot
Copy link

changeset-bot bot commented Sep 10, 2025

⚠️ No Changeset found

Latest commit: d492687

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 10, 2025

Walkthrough

Changed a horizontal label anchor in BarChart.tsx (textAnchor 'left' → 'start') and applied widespread dependency version/range updates across app, EE, and monorepo package.json files. No public API, export, control-flow, or error-handling changes.

Changes

Cohort / File(s) Summary
Omnichannel BarChart label anchor
apps/meteor/client/omnichannel/reports/components/BarChart.tsx
Horizontal <text> label textAnchor changed from 'left' to 'start'; transform and content unchanged.
App-level dependency updates
apps/meteor/package.json, apps/uikit-playground/package.json, apps/meteor/ee/server/services/package.json
Patch/minor dependency bumps and specifier tightenings (Babel, testing libs, @rocket.chat/*, @types/*, ws, @rocket.chat/icons); no code changes.
EE apps dependency updates
ee/apps/*/package.json (e.g., .../account-service/package.json, .../authorization-service/package.json, .../ddp-streamer/package.json, .../omnichannel-transcript/package.json, .../presence-service/package.json, .../queue-worker/package.json, .../stream-hub-service/package.json, .../federation-service/package.json)
Bumped @rocket.chat/string-helpers, @types/node, ws, typescript and similar devDeps; no API or behavior changes.
EE packages dependency updates
ee/packages/*/package.json (e.g., .../license/package.json, .../network-broker/package.json, .../omni-core-ee/package.json, .../omnichannel-services/package.json, .../pdf-worker/package.json, .../presence/package.json, .../ui-theming/package.json, .../federation-matrix/package.json, .../media-calls/package.json)
Jest/Babel/test tooling and @rocket.chat/* version updates; no public API changes.
Monorepo / packages-wide updates
package.json, packages/*/package.json (many packages, e.g., packages/api-client/package.json, packages/apps-engine/package.json, packages/fuselage-ui-kit/package.json, packages/ui-kit/package.json, packages/gazzodown/package.json, packages/web-ui-registration/package.json, etc.)
Broad, consistent dependency/version updates (Babel, Jest, testing libs, @types/node, @rocket.chat/*, typia, esbuild, yarn/tooling versions); many caret→tilde spec changes; no runtime or API changes.
Workspace tooling
.yarnrc.yml, root package.json
Yarn path, packageManager and engines.yarn bumped; root devDeps updated (@types/node, turbo, typescript); no code changes.

Sequence Diagram(s)

(Skipped — changes do not introduce new control flow or feature-level interactions suitable for a sequence diagram.)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

stat: ready to merge, stat: QA assured

Suggested reviewers

  • rodrigok
  • sampaiodiego

Poem

A rabbit hops through lines of code,
I nudge an anchor, tidy the node.
Versions climb, ranges snug and neat,
A tiny tweak — the chart's complete.
Nose twitch, I hop away — hooray! 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Out of Scope Changes Check ⚠️ Warning In addition to dependency upgrades, the pull request includes a modification in BarChart.tsx that updates the textAnchor property for a chart label, which is unrelated to the stated chore of upgrading dependencies. Please remove or isolate the BarChart.tsx change into a separate pull request so this chore remains focused exclusively on dependency upgrades.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title “chore(deps): Upgrade some dependencies” succinctly reflects the primary purpose of this pull request, which is to update various dependencies across the repository; it is clear, concise, and accurately describes the most significant change.
Linked Issues Check ✅ Passed The pull request’s changes consist solely of dependency version bumps, which directly fulfill the linked issue ARCH-1803’s objective of upgrading dependencies and introduce no functional or unrelated code modifications.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/bump-deps

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link

codecov bot commented Sep 10, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.79%. Comparing base (5403210) to head (d492687).
⚠️ Report is 2 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop   #36905      +/-   ##
===========================================
+ Coverage    67.34%   69.79%   +2.44%     
===========================================
  Files         3285     2977     -308     
  Lines       112249   102253    -9996     
  Branches     20361    18129    -2232     
===========================================
- Hits         75593    71363    -4230     
+ Misses       33976    28941    -5035     
+ Partials      2680     1949     -731     
Flag Coverage Δ
e2e 57.29% <ø> (-0.02%) ⬇️
e2e-api ?
unit 71.14% <ø> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@tassoevan tassoevan force-pushed the chore/bump-deps branch 3 times, most recently from 137eb0e to 34d3222 Compare September 10, 2025 19:29
@tassoevan tassoevan marked this pull request as ready for review September 10, 2025 20:36
@tassoevan tassoevan requested review from a team as code owners September 10, 2025 20:36
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

♻️ Duplicate comments (1)
packages/mongo-adapter/package.json (1)

21-21: Jest -> ~30.1.3 mirrors repo-wide change.

Same checks as api-client; ensure no mixed Jest majors.

See the verification script in packages/api-client/package.json comment.

🧹 Nitpick comments (15)
packages/i18n/package.json (1)

26-26: OK to bump Jest; consider modern typing approach.

This is fine. Optional: prefer importing types from @jest/globals instead of relying on @types/jest globals to minimize ambient pollution. (jestjs.io)

-  "@types/jest": "~30.0.0",
+  "@jest/globals": "^30.0.0",

Then in tests:

import { describe, test, expect } from '@jest/globals';
packages/message-types/package.json (1)

22-24: Jest 30.1.3 OK; align type definitions optionally

Consider aligning @types/jest in this package (and repo-wide) to ~30.1.x to match the runtime Jest minor.

-    "@types/jest": "~30.0.0",
+    "@types/jest": "~30.1.0",
packages/sha256/package.json (1)

17-19: Dev-only Babel/Jest bumps OK; consider removing Babel if unused.

If Babel isn’t part of this package’s test/build pipeline anymore (TS-only, Node 22 targets), you can drop @babel/* to trim dev graph. Optional.

Also applies to: 25-25

packages/server-fetch/package.json (1)

6-6: Keep @types/node-fetch at ~2.6.13; plan a future migration to node-fetch v3
No CommonJS require('node-fetch') patterns detected in packages/server-fetch; upgrading to the ESM-only v3 (with bundled types) should be straightforward when feasible.

apps/meteor/client/omnichannel/reports/components/BarChart.tsx (1)

51-55: Possible inverted skip condition for horizontal labels.

You likely want to hide labels for narrow bars, not wide ones.

Apply:

-        if (width >= labelSkipWidth) {
-            return null;
-        }
+        if (labelSkipWidth && width < labelSkipWidth) {
+            return null;
+        }
packages/core-services/package.json (1)

14-17: Align babel-jest with jest 30.1.x

Minor mismatch: babel-jest is ~30.0.5 while jest is ~30.1.3. Align to reduce risk of subtle transform issues.

Apply:

-    "babel-jest": "~30.0.5",
+    "babel-jest": "~30.1.3",
packages/jest-presets/package.json (1)

16-24: Bump Jest environment versions to match core 30.1.3
In packages/jest-presets/package.json, update both environments to avoid skew with Jest core:

-    "jest-environment-jsdom": "~30.1.2",
-    "jest-environment-node": "~30.1.2",
+    "jest-environment-jsdom": "~30.1.3",
+    "jest-environment-node": "~30.1.3",
ee/apps/authorization-service/package.json (1)

26-29: Move @types/node to devDependencies

-    "@types/node": "~22.16.5",

Add under devDependencies:

+    "@types/node": "~22.16.5"

Confirm @rocket.chat/string-helpers version: 0.32.0 isn’t published (npm latest is 0.31.25); ensure you depend on a valid release.

packages/livechat/package.json (1)

28-31: Babel toolchain bump LGTM; watch PostCSS ecosystem

Unrelated but nearby: you’re on postcss ~8.4.49 with autoprefixer ^9.8.8 (PostCSS 7 era). Consider upgrading autoprefixer to ^10.4.x to match PostCSS 8 and avoid peer warnings.

Example:

-    "autoprefixer": "^9.8.8",
+    "autoprefixer": "^10.4.20",
packages/ui-voip/package.json (1)

35-36: Switch to tilde for fuselage packages: +1 for stability.

Good move for deterministic builds. Consider applying the same pinning to any other RC UI libs in this package if applicable.

Also applies to: 38-38

packages/ui-contexts/package.json (1)

9-9: Small, safe bumps; align peer ranges if you want stronger guarantees.

DevDeps pinned to ~ but peerDeps are *. If you want downstreams to stay within the same minor for fuselage-hooks, consider setting a peer range like ~0.37.0.

Also applies to: 16-16, 21-21

packages/ui-client/package.json (2)

16-18: Deduplicate test scripts

test and testunit run the same command. Drop one to avoid drift.

   "test": "jest",
-  "testunit": "jest",

26-27: Version range consistency with other RC UI deps

Most RC UI deps in this PR move to ~ ranges. Consider aligning @rocket.chat/fuselage to ~0.66.3 for consistency and tighter reproducibility. Optional.

-    "@rocket.chat/fuselage": "^0.66.3",
+    "@rocket.chat/fuselage": "~0.66.3",
packages/web-ui-registration/package.json (1)

64-71: Pinned peerDependencies may cause unnecessary install conflicts

Peers pinned to exact versions (@rocket.chat/tools 0.2.3, @rocket.chat/ui-contexts 22.0.0) can break consumers on compatible minors/patches. Consider relaxing to workspace ranges.

   "peerDependencies": {
-    "@rocket.chat/layout": "*",
-    "@rocket.chat/tools": "0.2.3",
-    "@rocket.chat/ui-contexts": "22.0.0",
+    "@rocket.chat/layout": "*",
+    "@rocket.chat/tools": "workspace:^",
+    "@rocket.chat/ui-contexts": "workspace:^",
     "@tanstack/react-query": "*",
     "react": "*",
     "react-hook-form": "*",
     "react-i18next": "*"
   },
packages/fuselage-ui-kit/package.json (1)

43-46: Duplicate dependency: @rocket.chat/core-typings in deps and devDeps

The package appears in both dependencies and devDependencies. Keep it only in one (likely dependencies) to avoid confusion and resolution oddities.

   "dependencies": {
     "@rocket.chat/core-typings": "workspace:^",
     "@rocket.chat/gazzodown": "workspace:^",
     "@rocket.chat/ui-kit": "workspace:~"
   },
   "devDependencies": {
-    "@rocket.chat/core-typings": "workspace:^",

Also applies to: 53-54

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d832f91 and 34d3222.

⛔ Files ignored due to path filters (15)
  • apps/meteor/client/views/audit/components/__snapshots__/AppInfoField.spec.tsx.snap is excluded by !**/*.snap
  • apps/meteor/client/views/audit/components/__snapshots__/SecurityLogDisplayModal.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-client/src/components/AnnouncementBanner/__snapshots__/AnnouncementBanner.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposer.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposerHint.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageFooterCallout/__snapshots__/MessageFooterCallout.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfButton/__snapshots__/VideoConfButton.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfController/__snapshots__/VideoConfController.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfMessage/__snapshots__/VideoConfMessage.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfPopup/__snapshots__/VideoConfPopup.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipActionButton/__snapshots__/VoipActionButton.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipActions/__snapshots__/VoipActions.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipContactId/__snapshots__/VoipContactId.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipPopup/__snapshots__/VoipPopup.spec.tsx.snap is excluded by !**/*.snap
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (61)
  • apps/meteor/client/omnichannel/reports/components/BarChart.tsx (1 hunks)
  • apps/meteor/ee/server/services/package.json (2 hunks)
  • apps/meteor/package.json (15 hunks)
  • apps/uikit-playground/package.json (2 hunks)
  • ee/apps/account-service/package.json (1 hunks)
  • ee/apps/authorization-service/package.json (1 hunks)
  • ee/apps/ddp-streamer/package.json (2 hunks)
  • ee/apps/omnichannel-transcript/package.json (2 hunks)
  • ee/apps/presence-service/package.json (1 hunks)
  • ee/apps/queue-worker/package.json (1 hunks)
  • ee/apps/stream-hub-service/package.json (1 hunks)
  • ee/packages/license/package.json (1 hunks)
  • ee/packages/network-broker/package.json (1 hunks)
  • ee/packages/omni-core-ee/package.json (1 hunks)
  • ee/packages/omnichannel-services/package.json (2 hunks)
  • ee/packages/pdf-worker/package.json (1 hunks)
  • ee/packages/presence/package.json (1 hunks)
  • ee/packages/ui-theming/package.json (1 hunks)
  • package.json (1 hunks)
  • packages/api-client/package.json (1 hunks)
  • packages/apps-engine/package.json (2 hunks)
  • packages/base64/package.json (1 hunks)
  • packages/cas-validate/package.json (1 hunks)
  • packages/core-services/package.json (2 hunks)
  • packages/core-typings/package.json (1 hunks)
  • packages/ddp-client/package.json (1 hunks)
  • packages/eslint-config/package.json (1 hunks)
  • packages/freeswitch/package.json (1 hunks)
  • packages/fuselage-ui-kit/package.json (2 hunks)
  • packages/gazzodown/package.json (3 hunks)
  • packages/http-router/package.json (1 hunks)
  • packages/i18n/package.json (1 hunks)
  • packages/jest-presets/package.json (2 hunks)
  • packages/jwt/package.json (1 hunks)
  • packages/livechat/package.json (3 hunks)
  • packages/message-parser/package.json (1 hunks)
  • packages/message-types/package.json (1 hunks)
  • packages/mock-providers/package.json (1 hunks)
  • packages/models/package.json (1 hunks)
  • packages/mongo-adapter/package.json (1 hunks)
  • packages/omni-core/package.json (1 hunks)
  • packages/password-policies/package.json (1 hunks)
  • packages/patch-injection/package.json (1 hunks)
  • packages/peggy-loader/package.json (1 hunks)
  • packages/random/package.json (1 hunks)
  • packages/release-action/package.json (1 hunks)
  • packages/release-changelog/package.json (1 hunks)
  • packages/rest-typings/package.json (1 hunks)
  • packages/server-fetch/package.json (1 hunks)
  • packages/sha256/package.json (1 hunks)
  • packages/storybook-config/package.json (2 hunks)
  • packages/tools/package.json (1 hunks)
  • packages/tracing/package.json (1 hunks)
  • packages/ui-avatar/package.json (1 hunks)
  • packages/ui-client/package.json (2 hunks)
  • packages/ui-composer/package.json (2 hunks)
  • packages/ui-contexts/package.json (1 hunks)
  • packages/ui-kit/package.json (1 hunks)
  • packages/ui-video-conf/package.json (2 hunks)
  • packages/ui-voip/package.json (2 hunks)
  • packages/web-ui-registration/package.json (2 hunks)
🔇 Additional comments (66)
packages/jwt/package.json (1)

10-10: All Jest presets updated to v30.1.3 across packages
Verified every package using @rocket.chat/jest-presets and the presets package itself pin Jest at ~30.1.3, so the upgrade to Jest 30 is fully supported.

packages/omni-core/package.json (1)

12-12: LGTM on Jest bump.

Matches repo-wide alignment to 30.1.3; no API impact here.

packages/tools/package.json (1)

10-10: Jest 30 patch bump approved.

Nothing else affected in this package.

packages/base64/package.json (2)

16-17: Babel toolchain bumps look safe.

Upgrading @babel/core/preset-env to 7.28.x is non-breaking for this package’s TS-based build; primarily affects test transforms.


24-24: Jest bump OK.

No runtime impact; keep an eye on snapshot updates due to Jest 30 changes. (jestjs.io, fossies.org)

Please run tests once to catch any snapshot formatting diffs introduced by Jest 30.

packages/random/package.json (2)

18-19: Babel version bumps approved.

No config changes required here given TS compile-first workflow.


26-26: Jest bump OK.

Same note as base64 on potential snapshot churn in 30.x. (fossies.org)

ee/apps/presence-service/package.json (1)

26-29: Node runtime confirmed (22.16.0 ≥ 22); verify string-helpers bump

  • Node engine in root package.json is set to 22.16.0, satisfying Node ≥ 22.
  • Review @rocket.chat/string-helpers@~0.32.0 for any minor breaking changes in dependent EE apps.
packages/freeswitch/package.json (1)

10-12: Single Jest version confirmed
All package.json references use jest "~30.1.3", ensuring a unified Jest resolution across the workspace.

packages/rest-typings/package.json (1)

9-11: Verify Jest presets and custom transformers compatibility

Run the full test suite with Jest ~30.1.3 and confirm no regressions, especially in packages using custom transformers (e.g. packages/message-parser’s .pegjs loader) and all @rocket.chat/jest-presets-based configurations still pass.

ee/apps/omnichannel-transcript/package.json (2)

54-58: @types/react → ~18.3.24 matches react ~18.3.1

Type/runtime alignment looks good.


31-31: Verify tsconfig inherit correct target and lib for Node 22
Local tsconfig.json extends @rocket.chat/tsconfig/server.json and doesn’t declare its own target or lib. Ensure the extended config sets compilerOptions.target"ES2022" and includes corresponding lib entries to match Node 22 types, and that CI is running Node 20/22.

packages/patch-injection/package.json (1)

10-12: Jest bump consistent with monorepo

No concerns.

ee/packages/license/package.json (1)

12-14: Verify jest-websocket-mock compatibility with Jest 30.1.3
Manually confirm that jest-websocket-mock@~2.5.0 supports Jest v30.x—either by inspecting its peerDependencies in npm or running the full test suite to catch any breakage.

ee/apps/account-service/package.json (1)

26-30: No direct usage in account-service—0.32.x bump is safe
No imports or requires of @rocket.chat/string-helpers exist in ee/apps/account-service, so the minor bump poses no risk here.

package.json (1)

24-24: @types/node ~22.16.5 aligns with engines/volta Node 22.16.0.

No action needed.

ee/apps/queue-worker/package.json (1)

27-27: Node types bump is safe.

Dev-only; no runtime impact.

packages/release-action/package.json (1)

13-15: Types bump OK; manually verify GitHub Action tsconfig build target. Unable to parse tsconfig JSON due to comments—please confirm compilerOptions.target (e.g. ES2022) and lib settings in packages/release-action/tsconfig*.json.

ee/apps/stream-hub-service/package.json (1)

25-27: Consistency confirmed for Node types and string-helpers versions across all workspaces
All package.json files use @types/node ~22.16.5 and @rocket.chat/string-helpers ~0.32.0.

packages/release-changelog/package.json (1)

13-13: Dev types bump is fine; keep Node types uniform across packages.

No functional impact here; just ensure repo-wide @types/node stays on ~22.16.5 to prevent type resolution drift.

Covered by the workspace-wide script shared in ee/apps/stream-hub-service/package.json.

packages/eslint-config/package.json (1)

6-7: No peer dependency issues: @babel/[email protected] supports eslint ^7.5.0 ‖ ^8.0.0 ‖ ^9.0.0 and @babel/core ^7.11.0 (matching our ~7.28.4), and [email protected] requires eslint >=7.0.0 (matching ~8.45.0); CI warnings are unlikely.

ee/packages/pdf-worker/package.json (1)

39-41: Jest/testing-library bumps look good; confirm React/testing-library compat in tests.

@testing-library/react ~16.3.0 with React 18.3.x and Jest ~30.1.3 should be compatible. Ensure snapshots and jsdom config still pass.

If failures appear, check for updated matchers or async wait utilities in tests.

Also applies to: 43-43, 48-48

packages/peggy-loader/package.json (1)

47-47: Types patch bump approved.

No runtime effect; aligns with repo target.

packages/cas-validate/package.json (1)

8-8: Jest 30.1.3 bump OK; no local Jest config detected
Tests will inherit the root/shared presets—manually verify those are updated for Jest 30.x to prevent snapshot churn.

packages/apps-engine/package.json (1)

78-78: No esbuild version divergence detected
Scanned all package.json files; only packages/apps-engine/package.json pins esbuild to ~0.25.9—no other workspaces declare esbuild.

ee/packages/ui-theming/package.json (1)

9-15: Patch bumps and tilde ranges for fuselage-hooks/icons/@types/react stabilize builds.

No API impact expected; alignment with other packages is good.

ee/packages/omnichannel-services/package.json (1)

11-28: Typecheck omnichannel-services: manual verification required

The provided script didn’t locate the local TS compiler in isolation; install the package’s dependencies (e.g., npm install or your monorepo’s workspace install) and rerun:

tsc -p ee/packages/omnichannel-services/tsconfig.json --noEmit --skipLibCheck

to confirm no type errors.

packages/storybook-config/package.json (2)

7-7: fuselage-hooks to ~0.37.2 (tilde): reproducible installs 👍

Keeps Storybook deps in a safe patch window.


26-26: icons to ~0.44.0: patch alignment matches the rest of the repo.

No peer range tightening needed given peer "*" here.

apps/meteor/client/omnichannel/reports/components/BarChart.tsx (1)

56-66: Fix: use valid SVG textAnchor='start' (not 'left').

Correct attribute improves rendering and RTL awareness.

ee/apps/ddp-streamer/package.json (3)

27-27: @rocket.chat/string-helpers → ~0.32.0: minor bump is fine; watch for type drift.

No runtime API changes expected; run TS checks as part of CI.


44-44: ws → ~8.18.3 (tilde): safer patch tracking for a network-critical dep.

Good move for stability.


51-51: @types/node → 22.16.5: matches broader repo; ensure Node toolchain parity.

Consistent with other EE apps.

apps/meteor/ee/server/services/package.json (4)

28-28: @rocket.chat/string-helpers → ~0.32.0: minor upgrade; low risk.

Recommend a quick typecheck run for this package.


48-48: ws → ~8.18.3: patch bump aligns with other services.

OK for server-side usage.


51-51: icons → ~0.44.0 in devDeps: patch alignment with UI packages.

No bundling impact expected for server package.


57-57: @types/node → 22.16.5: ensure CI uses Node 22 for type libs.

Matches the repo’s direction.

packages/mock-providers/package.json (1)

19-26: Jest + Testing Library bump looks good

Versions are compatible with React 18 and Jest 30. No concerns.

packages/core-services/package.json (1)

38-38: Icons range narrowed to ~0.44.x — confirm intended stability policy

Switching to tilde pins to patch-only within 0.44. If that’s the new policy repo-wide, proceed; otherwise consider caret for minor updates.

packages/message-parser/package.json (1)

51-71: Babel/Jest/Type tooling refresh LGTM

Babel 7.28.x, Jest 30.1.3, ts-loader 9.5.4, typedoc 0.28.12 are consistent with webpack 5.99.9. No action needed.

packages/ui-composer/package.json (1)

23-31: Tightening ranges to ~ for hooks/icons — confirm repo policy

Looks intentional and consistent with other packages; just confirming this is the desired update cadence.

packages/livechat/package.json (1)

63-67: mini-css-extract-plugin/html-webpack-plugin bumps are fine

Both versions are compatible with webpack 5.99.x.

packages/models/package.json (1)

11-19: Jest bump OK; manual smoke-test string-helpers 0.32.0 functions
Numerous imports of escapeRegExp, escapeHTML and capitalize across the repo—confirm their behavior remains unchanged.

apps/uikit-playground/package.json (2)

22-22: Tightening semver to tilde looks good; ensure policy is consistent repo-wide.

Locking @rocket.chat/fuselage-hooks and @rocket.chat/icons to ~ reduces accidental drift. If the goal is reproducible CI across all UI packages, consider standardizing this tilde policy for these two across the monorepo in this PR.

Do you want a script to scan for remaining carets on these two packages across workspaces?

Also applies to: 27-27


48-49: Types bump is safe; run typecheck in this app before merge.

@types/lodash and @types/react patch bumps can surface stricter types in TS 5.9. Please run yarn typecheck locally/CI to preempt surprises.

packages/ui-voip/package.json (2)

28-28: Babel core → 7.28.x: verify Storybook and Jest transforms still align.

Given Storybook uses the Babel compiler addon, ensure .babelrc/presets don’t rely on removed options between 7.26 → 7.28.


56-58: Jest/Test libs bumps: watch for minor breaking assertions.

Jest 30.1 + Testing Library minor bumps are usually safe, but please run this package’s tests and Storybook test-runner before merging.

Also applies to: 61-61, 68-68

packages/gazzodown/package.json (1)

31-31: Tooling bumps look fine; check Storybook build once.

Babel 7.28.x + Jest 30.1.x + Testing Library 16.3 should be compatible. Please verify storybook build and jest on CI for this package due to Babel/Storybook integration.

Also applies to: 36-36, 39-39, 55-56, 60-60, 72-72

packages/http-router/package.json (1)

11-15: Verify Jest preset’s ts-jest usage and compatibility
packages/http-router/jest.config.ts relies solely on @rocket.chat/jest-presets/server and contains no direct transform or ts-jest entries. Confirm whether that preset applies ts-jest under the hood and supports Jest v30; if not, upgrade ts-jest to a v30-compatible release or adjust the preset accordingly.

ee/packages/presence/package.json (1)

6-9: Aligned Babel toolchain + Jest 30: OK; ensure Babel/Jest configs are in sync.

With [email protected] and Babel 7.28.x, confirm no deprecated Babel options remain in config.

Also applies to: 12-12, 15-15

apps/meteor/package.json (5)

69-74: Babel toolchain → 7.28.x: confirm Meteor build still respects custom Babel hooks.

Meteor can wire its own Babel; ensure these bumps don’t conflict with Meteor’s transpilation pipeline.


89-91: Testing Library minor bumps: re-run client Jest tests.

Some queries and timers got minor behavior tweaks between 16.0 → 16.3.


125-138: Types updates: safe; watch for stricter Node 22 types.

Patch bumps to Node/Nodemailer types can surface new overloads. Please ensure tsc --noEmit passes for server and client.

Also applies to: 146-147, 154-155


178-183: Lint/Test infra bumps: OK; check Jest + Supertest combo.

[email protected] and supertest@~7.1.4 are fine, but ensure your Jest env for HTTP tests (JSDOM vs node) matches expectations.

Also applies to: 190-190, 197-197, 211-211, 217-217


225-225: Runtime deps bumped; verify critical paths (auth, XML, editors, UA parse).

  • @babel/runtime ~7.28.4, @node-oauth/oauth2-server 5.2.1, @xmldom/xmldom ~0.8.11, codemirror ~5.65.20, mailparser ~3.7.4, meteor-node-stubs ~1.2.24, typia ~9.7.2, ua-parser-js ~1.0.41, zustand ~5.0.8.
    Run smoke tests for login/OAuth, XML parsing/signing flows, email ingestion, and editors. No API changes expected, but these areas are sensitive.

Also applies to: 235-235, 258-259, 266-266, 296-297, 310-311, 314-314, 331-331, 391-391, 396-396, 450-452, 461-461

packages/ui-video-conf/package.json (3)

24-24: Babel core sync to 7.28.x: LGTM.


28-29: Tilde pinning for fuselage/icons: good consistency with other packages.

Also applies to: 31-31


47-47: Types/Jest bumps: re-run unit and a11y tests.

jest-axe + Jest 30 should remain compatible; still, run jest to confirm.

Also applies to: 53-53

packages/ui-client/package.json (1)

31-31: Verify Jest 30 preset compatibility

All packages now use Jest ~30.1.3 with @rocket.chat/jest-presets and there are no remaining Jest 29 references. Validate that your packages/jest-presets export and any root-level Jest configs align with Jest 30’s configuration schema in CI.

packages/ui-avatar/package.json (2)

6-16: Babel/React types bumps look safe

The patch/minor bumps here are low risk and align with other packages. No action.


30-33: tsconfig references valid
Found both packages/ui-avatar/tsconfig-build.json and packages/ui-avatar/tsconfig.json, so the build/dev scripts will resolve correctly.

packages/web-ui-registration/package.json (1)

20-23: Babel/testing library bumps are coherent

Patch/minor upgrades across Babel and Testing Library are consistent with the monorepo sweep. LGTM.

Also applies to: 47-51

packages/fuselage-ui-kit/package.json (2)

7-14: Repository/bugs metadata points to Fuselage repo—confirm intent

This package lives in Rocket.Chat monorepo but links to github.com/RocketChat/fuselage. If intentional (shared package published from here), ignore; otherwise update to this repo to help contributors.


48-61: Storybook/Jest/Babel upgrades look consistent

SB 8.6 + webpack 5 + Babel 7.28 and Jest 30 are aligned. No further changes requested, pending preset compatibility checks.

Also applies to: 76-87

packages/ui-kit/package.json (2)

38-44: Babel/typia bumps OK

Babel 7.28.x and typia ~9.7.2 with ts-patch are consistent with the existing build steps. LGTM.

Also applies to: 57-58


48-55: [email protected] supports TS 5.9 and Jest 30: its peerDependencies include typescript: ">=4.3 <6" and jest: "^29.0.0 || ^30.0.0", so no upgrade is needed.

Comment on lines 10 to 15
"@types/node": "~22.16.5",
"@types/sinon": "^10.0.20",
"chai": "^4.5.0",
"eslint": "~8.45.0",
"jest": "~30.0.5",
"jest": "~30.1.3",
"sinon": "^19.0.5",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Aligns @types/node to 22.16.5 and Jest 30—ensure CI/node toolchain matches.

Confirm the root Volta/engines pin Node ≥22 to avoid lib mismatch at type-check time.


🏁 Script executed:

#!/bin/bash
set -euo pipefail
echo "Root engines.node:"; jq -r '.engines.node // "unset"' package.json
echo "Root volta.node:";   jq -r '.volta.node   // "unset"' package.json

Length of output: 51


Sync root Node pin to ≥22.16.5
Root package.json still pins both engines.node and volta.node to 22.16.0, which conflicts with the new @types/node "~22.16.5" devDependency. Update both to at least 22.16.5.

🤖 Prompt for AI Agents
In ee/packages/network-broker/package.json around lines 10 to 15, the
devDependency @types/node is set to ~22.16.5 while the root package.json still
pins engines.node and volta.node to 22.16.0; update the root package.json to set
both engines.node and volta.node to at least "22.16.5" (or a compatible range
that includes 22.16.5) so the Node engine and Volta pin match the @types/node
devDependency, then run install/lockfile update to ensure consistency across the
monorepo.

Comment on lines 11 to 12
"jest": "~30.1.3",
"typescript": "~5.9.2"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Jest bump to 30.1.3: looks good; verify preset and types alignment

  • Ensure @rocket.chat/jest-presets is compatible with Jest 30.1.x.
  • Consider bumping @types/jest to ~30.1.x for parity across the repo.

Run to check for mixed Jest versions and type defs:


🏁 Script executed:

#!/bin/bash
rg -n --glob '**/package.json' -C0 '"jest":\s*"' | sort -u
rg -n --glob '**/package.json' -C0 '"@types/jest":\s*"' | sort -u

Length of output: 3916


Bump @types/jest to match Jest 30.1.x
All packages currently use Jest ~30.1.3 but still depend on @types/jest ~30.0.0—update every @types/jest entry to ~30.1.x for consistency. Verified that @rocket.chat/jest-presets’s devDependency on Jest ~30.1.3 already aligns, so no preset‐compatibility block.

🤖 Prompt for AI Agents
In ee/packages/omni-core-ee/package.json around lines 11-12, the project uses
Jest ~30.1.3 but any @types/jest entries are still ~30.0.0; update the
@types/jest dependency version to ~30.1.x to match Jest 30.1.3, then run your
package manager (npm/yarn/pnpm) to regenerate the lockfile and run the test
suite to ensure types are compatible.

Comment on lines +34 to 38
"@rocket.chat/icons": "~0.44.0",
"@rocket.chat/message-parser": "workspace:^",
"@rocket.chat/ui-kit": "workspace:~",
"typia": "~9.7.0"
"typia": "~9.7.2"
},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Icons/typia bumps look fine; verify monorepo consistency and CI typegen.

  • Tilde pin for @rocket.chat/icons (~0.44.0) is a good safeguard; ensure no lingering caret ranges elsewhere.
  • typia ~9.7.2 with TS ~5.9.2 should be fine; confirm the “ts-patch install && typia patch” step still runs clean across CI.

Run to confirm version alignment:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Icons versions across repo:"
rg -nP '"@rocket\.chat/icons"\s*:\s*"[^"]+"' -g '!**/node_modules/**' -S

echo -e "\nAny caret ranges for icons?"
rg -nP '"@rocket\.chat/icons"\s*:\s*"\^' -g '!**/node_modules/**' -S || echo "None"

echo -e "\nTypia versions across repo:"
rg -nP '"typia"\s*:\s*"[^"]+"' -g '!**/node_modules/**' -S

Length of output: 176


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Icons versions in package.json files:"
find . -type f -name 'package.json' -not -path '*/node_modules/*' -print0 | xargs -0 grep -Hn '"@rocket.chat/icons"' || echo "None found"

echo -e "\nCaret ranges for @rocket.chat/icons (^):"
find . -type f -name 'package.json' -not -path '*/node_modules/*' -print0 | xargs -0 grep -Hn '"@rocket.chat/icons".*"\^' || echo "None found"

echo -e "\nTypia versions in package.json files:"
find . -type f -name 'package.json' -not -path '*/node_modules/*' -print0 | xargs -0 grep -Hn '"typia"' || echo "None found"

Length of output: 2039


Ensure consistent tilde pinning for @rocket.chat/icons and verify CI typia patch

  • Replace wildcard ("*") versions of @rocket.chat/icons in ee/ui-theming, fuselage-ui-kit, storybook-config, ui-client, ui-composer, ui-kit, ui-video-conf, and ui-voip with ~0.44.0.
  • Confirm the ts-patch install && typia patch step still runs clean in CI.

Copy link
Member

@dougfabris dougfabris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LG on behalf of frontend

dougfabris
dougfabris previously approved these changes Sep 10, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
ee/packages/network-broker/package.json (1)

10-15: Jest 30 + @types/node 22.16.5: verify CI Node version and preset compatibility.

  • Jest ~30.1.3 requires a modern Node; confirm CI/Volta pins meet it and that repo jest presets don’t rely on removed options.
  • Prior review already flagged engines/volta pins drift at root; ensure it’s resolved.

Use this quick audit to ensure consistent Jest across the monorepo:

#!/bin/bash
set -euo pipefail
echo "Jest versions found:"
fd -t f package.json -H | xargs -I{} jq -r '[input_filename, (.devDependencies.jest // .dependencies.jest // empty)] | @tsv' {} \
  | awk -F'\t' '$2!=""{print $0}' | sort
🧹 Nitpick comments (7)
ee/packages/omnichannel-services/package.json (1)

25-27: Keep @types/node as a dev-only dependency; sync Node engine.

  • @types/node is listed under dependencies—move to devDependencies to reduce prod install weight and keep consistency with other packages.
  • Ensure root engines/volta Node ≥ 22.16.5.

Apply move (illustrative diff):

   "dependencies": {
@@
-    "@types/node": "~22.16.5",
   },
   "devDependencies": {
@@
+    "@types/node": "~22.16.5",
   },
packages/models/package.json (1)

19-19: Minor: verify @rocket.chat/string-helpers ~0.32.0 for breaking changes.

It’s a minor bump but external to workspace. If any helpers changed types/semantics, they’ll surface at type-check. Keep an eye on release notes.

packages/gazzodown/package.json (1)

35-35: Consistency nit: consider tilde for @rocket.chat/fuselage to match the new policy.
Most RC internal devDeps here are ~-pinned; fuselage is still ^0.66.3.

-    "@rocket.chat/fuselage": "^0.66.3",
+    "@rocket.chat/fuselage": "~0.66.3",
packages/sha256/package.json (1)

16-27: Keep local Babel devDeps or move config to root to dedupe

packages/sha256 contains babel.config.js (presets: ['@babel/preset-env']) and imports @rocket.chat/jest-presets in jest.config.ts — Babel is used for tests, so retain @babel/core and @babel/preset-env here; only remove/dedupe them if you also move/centralize babel.config.js/Jest transforms to the workspace root.

packages/eslint-config/package.json (2)

13-13: Prettier/ESLint interop — OK; no deprecated extends found

  • Verified: eslint-config-prettier ~9.1.2 pairs with Prettier ~3 and eslint-plugin-prettier ~5 (seen in packages/eslint-config/package.json and other package.jsons).
  • Searched repo for deprecated extends (prettier/@typescript-eslint, prettier/react, prettier/flowtype) — none found; multiple packages extend "prettier" and enable the plugin/rule (examples: packages/ui-client/.eslintrc.json, packages/livechat/.eslintrc.json, apps/meteor/tests/e2e/.eslintrc.json).
  • Optional: centralize Prettier rules in packages/eslint-config to reduce config drift.

6-7: Babel parser/core bump — peer & engine check passed; pick a range policy

  • @babel/[email protected] peerDependencies: @babel/core = ^7.11.0; eslint = ^7.5.0 || ^8.0.0 || ^9.0.0 — repo uses eslint "~8.45.0" (compatible) and @babel/core "~7.28.4" in multiple workspaces (e.g., packages/eslint-config, packages/ui-kit, packages/message-parser, packages/base64, packages/core-services).
  • Node: root package.json engines.node = "22.16.0" and .tool-versions / Volta entries exist — no immediate engine mismatch.
  • Policy/action: "" prevents 7.x minor bumps (only patches); switch to "^" if you want automated minor updates across the monorepo, otherwise keep "" to remain consistent with current usage.
  • If this eslint-config is intended for external consumers, move eslint and @babel/eslint-parser to peerDependencies (keep them in devDependencies for local development).
apps/meteor/package.json (1)

93-93: Archiver runtime vs types version skew.

Runtime archiver is ^7.0.1 while @types/archiver is ~6.0.3. If APIs diverged in v7, types may be stale. Verify compile-time coverage; if a v7-compatible typings package exists, prefer that.

Also applies to: 319-319

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 34d3222 and fc8451e.

⛔ Files ignored due to path filters (14)
  • apps/meteor/client/views/audit/components/__snapshots__/AppInfoField.spec.tsx.snap is excluded by !**/*.snap
  • apps/meteor/client/views/audit/components/__snapshots__/SecurityLogDisplayModal.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-client/src/components/AnnouncementBanner/__snapshots__/AnnouncementBanner.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposer.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposerHint.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageFooterCallout/__snapshots__/MessageFooterCallout.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfButton/__snapshots__/VideoConfButton.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfController/__snapshots__/VideoConfController.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfMessage/__snapshots__/VideoConfMessage.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipActionButton/__snapshots__/VoipActionButton.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipActions/__snapshots__/VoipActions.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipContactId/__snapshots__/VoipContactId.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipPopup/__snapshots__/VoipPopup.spec.tsx.snap is excluded by !**/*.snap
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (61)
  • apps/meteor/client/omnichannel/reports/components/BarChart.tsx (1 hunks)
  • apps/meteor/ee/server/services/package.json (2 hunks)
  • apps/meteor/package.json (15 hunks)
  • apps/uikit-playground/package.json (2 hunks)
  • ee/apps/account-service/package.json (1 hunks)
  • ee/apps/authorization-service/package.json (1 hunks)
  • ee/apps/ddp-streamer/package.json (2 hunks)
  • ee/apps/omnichannel-transcript/package.json (2 hunks)
  • ee/apps/presence-service/package.json (1 hunks)
  • ee/apps/queue-worker/package.json (1 hunks)
  • ee/apps/stream-hub-service/package.json (1 hunks)
  • ee/packages/license/package.json (1 hunks)
  • ee/packages/network-broker/package.json (1 hunks)
  • ee/packages/omni-core-ee/package.json (1 hunks)
  • ee/packages/omnichannel-services/package.json (2 hunks)
  • ee/packages/pdf-worker/package.json (1 hunks)
  • ee/packages/presence/package.json (1 hunks)
  • ee/packages/ui-theming/package.json (1 hunks)
  • package.json (1 hunks)
  • packages/api-client/package.json (1 hunks)
  • packages/apps-engine/package.json (2 hunks)
  • packages/base64/package.json (1 hunks)
  • packages/cas-validate/package.json (1 hunks)
  • packages/core-services/package.json (2 hunks)
  • packages/core-typings/package.json (1 hunks)
  • packages/ddp-client/package.json (1 hunks)
  • packages/eslint-config/package.json (1 hunks)
  • packages/freeswitch/package.json (1 hunks)
  • packages/fuselage-ui-kit/package.json (2 hunks)
  • packages/gazzodown/package.json (3 hunks)
  • packages/http-router/package.json (1 hunks)
  • packages/i18n/package.json (1 hunks)
  • packages/jest-presets/package.json (2 hunks)
  • packages/jwt/package.json (1 hunks)
  • packages/livechat/package.json (3 hunks)
  • packages/message-parser/package.json (1 hunks)
  • packages/message-types/package.json (1 hunks)
  • packages/mock-providers/package.json (1 hunks)
  • packages/models/package.json (1 hunks)
  • packages/mongo-adapter/package.json (1 hunks)
  • packages/omni-core/package.json (1 hunks)
  • packages/password-policies/package.json (1 hunks)
  • packages/patch-injection/package.json (1 hunks)
  • packages/peggy-loader/package.json (1 hunks)
  • packages/random/package.json (1 hunks)
  • packages/release-action/package.json (1 hunks)
  • packages/release-changelog/package.json (1 hunks)
  • packages/rest-typings/package.json (1 hunks)
  • packages/server-fetch/package.json (1 hunks)
  • packages/sha256/package.json (1 hunks)
  • packages/storybook-config/package.json (2 hunks)
  • packages/tools/package.json (1 hunks)
  • packages/tracing/package.json (1 hunks)
  • packages/ui-avatar/package.json (1 hunks)
  • packages/ui-client/package.json (2 hunks)
  • packages/ui-composer/package.json (2 hunks)
  • packages/ui-contexts/package.json (1 hunks)
  • packages/ui-kit/package.json (1 hunks)
  • packages/ui-video-conf/package.json (2 hunks)
  • packages/ui-voip/package.json (2 hunks)
  • packages/web-ui-registration/package.json (2 hunks)
✅ Files skipped from review due to trivial changes (4)
  • ee/apps/omnichannel-transcript/package.json
  • packages/jwt/package.json
  • packages/tools/package.json
  • packages/ui-avatar/package.json
🚧 Files skipped from review as they are similar to previous changes (47)
  • packages/peggy-loader/package.json
  • packages/release-action/package.json
  • packages/tracing/package.json
  • packages/freeswitch/package.json
  • packages/apps-engine/package.json
  • ee/apps/queue-worker/package.json
  • apps/uikit-playground/package.json
  • ee/apps/presence-service/package.json
  • packages/server-fetch/package.json
  • packages/ddp-client/package.json
  • packages/ui-contexts/package.json
  • packages/ui-client/package.json
  • packages/storybook-config/package.json
  • ee/apps/stream-hub-service/package.json
  • ee/packages/omni-core-ee/package.json
  • packages/core-typings/package.json
  • packages/i18n/package.json
  • packages/ui-composer/package.json
  • ee/packages/ui-theming/package.json
  • packages/message-parser/package.json
  • packages/release-changelog/package.json
  • package.json
  • ee/packages/presence/package.json
  • packages/omni-core/package.json
  • ee/apps/ddp-streamer/package.json
  • packages/core-services/package.json
  • packages/web-ui-registration/package.json
  • apps/meteor/client/omnichannel/reports/components/BarChart.tsx
  • packages/http-router/package.json
  • packages/cas-validate/package.json
  • packages/mongo-adapter/package.json
  • packages/base64/package.json
  • packages/message-types/package.json
  • packages/livechat/package.json
  • ee/packages/license/package.json
  • packages/random/package.json
  • packages/ui-kit/package.json
  • packages/password-policies/package.json
  • packages/patch-injection/package.json
  • packages/mock-providers/package.json
  • packages/rest-typings/package.json
  • apps/meteor/ee/server/services/package.json
  • packages/ui-voip/package.json
  • packages/api-client/package.json
  • ee/apps/authorization-service/package.json
  • packages/fuselage-ui-kit/package.json
  • packages/jest-presets/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: 📦 Build Packages
  • GitHub Check: CodeQL-Build
  • GitHub Check: CodeQL-Build
🔇 Additional comments (35)
ee/packages/omnichannel-services/package.json (1)

11-11: Jest bump: watch for config/test-env regressions.

Upgrading to ~30.1.3 can surface subtle preset/env changes. Run the package tests locally and in CI to validate snapshot and timers behavior.

packages/models/package.json (1)

11-11: Jest 30 alignment looks good.

No conflicting test tooling here; version aligns with repo-wide bump. Consider running this package’s test suite once CI engines are updated.

packages/gazzodown/package.json (6)

36-36: Pinned ~0.37.2 for fuselage-hooks is consistent with the tilt to tilde; LGTM.
No peer conflicts expected with React 18 here.


60-60: @types/react 18.3.24 aligns with react 18.3.x; good.
Keep @types/react-dom in lockstep (it’s already 18.3.7).


31-31: Verify Storybook Babel integration after bump.
packages/gazzodown/package.json contains @babel/core "~7.28.4" and @storybook/addon-webpack5-compiler-babel "^3.0.6" — run Storybook dev/build to confirm no TS/JS compilation regressions; if issues appear, inspect the @storybook/*-babel compiler plugin config.


55-56: @testing-library/dom/react bumps — verify test helpers and jest preset jsdom env

  • packages/gazzodown/package.json (lines 55–56) lists @testing-library/dom ~10.4.1 and @testing-library/react ~16.3.0 — RTL 16 tightened types and async utils; verify your test helpers (types, waitFor/async utilities) for minor breakages.
  • rg shows @rocket.chat/jest-presets referenced across many packages (including packages/gazzodown). The earlier script failed to extract RTL versions (jq/column), so confirm @rocket.chat/jest-presets still sets testEnvironment: "jsdom" or explicitly set it in affected package.json files.

39-39: Verify Storybook runtime: @rocket.chat/icons ~0.44.0 vs @rocket.chat/fuselage-tokens ~0.33.2 (mismatch detected)
Run a Storybook smoke test in packages/gazzodown, exercise components using tokens and icons, and check the console for token/icon warnings and any visual regressions.
If breakage appears, align versions: either upgrade @rocket.chat/fuselage-tokens to ~0.44.x or revert @rocket.chat/icons to ~0.33.x and document the decision in the PR.


72-72: Jest 30.1.3 — verify @rocket.chat/jest-presets compatibility with Jest v30 APIs

Legacy timers (fakeTimers), ESM transform/transformIgnorePatterns, and resolver defaults commonly break on v30.

  • Evidence: presets/configs at packages/jest-presets/src/client/jest-preset.ts, packages/jest-presets/src/server/jest-preset.ts and package config at packages/gazzodown/jest.config.ts.
  • Action: run: pnpm --filter @rocket.chat/gazzodown test
  • If tests fail: update presets for v30 — migrate fakeTimers usage, adjust ESM/transformIgnorePatterns, and revise resolver settings.
ee/packages/pdf-worker/package.json (3)

43-43: Types bump is safe with TS 5.9.
No action needed.


39-41: Testing Library bumps look fine — verify peerDependencies & Jest jsdom env (manual verification required)

Automated check failed (curl/jq returned non-JSON). These versions should work with React 18.3.x; confirm peerDependencies for @testing-library/[email protected] and @testing-library/[email protected] and ensure your Jest 30 config/preset still sets testEnvironment to jsdom.

Location: ee/packages/pdf-worker/package.json (lines 39–41)

Run locally:
npm view @testing-library/[email protected] peerDependencies --json
npm view @testing-library/[email protected] peerDependencies --json
rg -nP --glob '!/node_modules/' -C2 '"testEnvironment"\s*:\s*"[^"]+"' || true
rg -n 'jest-environment-jsdom' -g '!/node_modules/' || true


48-48: No change needed — preset already provides jsdom for Jest 30.
packages/jest-presets/package.json includes "jest-environment-jsdom": "~30.1.2" and devDependency "jest": "~30.1.3"; the client preset sets testEnvironment: 'jsdom' (packages/jest-presets/src/client/jest-preset.ts). ee/packages/pdf-worker does not need an explicit jest-environment-jsdom devDependency.

packages/sha256/package.json (2)

17-18: Babel bump looks consistent; repo-wide verification required

packages/sha256/package.json sets @babel/core and @babel/preset-env to ~7.28.x (lines 17–18). Automated repo-wide scan failed in the sandbox (/dev/fd error). Verify no other package.json pins @babel/core or @babel/preset-env to a different major/minor.


25-25: Jest 30 upgrade — verify preset/transformer compatibility

packages/sha256/package.json sets jest to ~30.1.3 — ensure @rocket.chat/jest-presets resolves babel-jest or ts-jest versions compatible with Jest 30 to avoid runtime transform errors. Repo-wide verification scripts errored; run a repo-wide check of devDependencies (jest, babel-jest, ts-jest, @rocket.chat/jest-presets) and fix any mismatches.

packages/ui-video-conf/package.json (5)

24-24: Babel core bump: confirm preset/plugin compatibility.

Ensure presets/plugins (including @rocket.chat/jest-presets and Storybook’s Babel compiler) are compatible with @babel/core ~7.28.4 (packages/ui-video-conf/package.json). Previous verification script failed with a jq quoting error — run this from the repo root and paste the output:

#!/bin/bash
set -euo pipefail
printf "file\traw_version\tnormalized\n"
find . -name package.json -not -path "*/node_modules/*" -print | while IFS= read -r f; do
  ver=$(jq -r '.devDependencies["@babel/core"] // .dependencies["@babel/core"] // empty' "$f" 2>/dev/null || true)
  if [ -n "$ver" ]; then
    norm=${ver#workspace:}
    norm=${norm#^}
    norm=${norm#~}
    printf "%s\t%s\t%s\n" "$f" "$ver" "$norm"
  fi
done

31-31: icons: bump to @rocket.chat/icons ~0.44.0 — verify renamed/removed glyphs or export-path changes

packages/ui-video-conf/package.json (devDependencies) sets "@rocket.chat/icons": "~0.44.0". Automated search failed to confirm imports (ripgrep skipped files), so manually check for renamed/removed glyph names or changed export paths and run a full typecheck/build to surface compile-time breakages.


53-53: Confirm Jest 30 compatibility and remove cross-major pins.

packages/ui-video-conf/package.json (line 53) pins "jest": "~30.1.3" — confirm @rocket.chat/jest-presets and any runners/presets resolve to a Jest 30-compatible stack, that no other package.json pins Jest 29.x (including @types/jest), and that test-related deps share the same major across the workspace. If the workspace should enforce a single Jest runner, hoist jest to the workspace root and update the lockfile.


28-28: Verify compatibility: @rocket.chat/fuselage-hooks@~0.37.2 ⇄ @rocket.chat/fuselage@^0.66.3

Repo scan shows most UI packages already use ^0.66.3 and ~0.37.2 (no version drift). Upstream @rocket.chat/fuselage-hooks lists peer deps @rocket.chat/emitter, @rocket.chat/fuselage-tokens and react (no direct @rocket.chat/fuselage peerDep). (npmjs.com) @rocket.chat/fuselage itself lists fuselage-hooks as a peer dependency. (npmjs.com)

Action: run CI/Storybook + smoke tests across UI packages to confirm runtime/API compatibility; if you need stronger guarantees, pin both packages together and standardize tilde vs caret across UI packages.


47-47: Validate @types/react bump — run repo-wide typecheck

Verification failed here: tsc not found; Node v24.3.0 (repo requires 22.16.0); node_modules missing.

Change: packages/ui-video-conf/package.json — "@types/react": "~18.3.24".

Action: Use Node 22.16.0 and install deps (e.g., nvm use 22.16.0 && pnpm -w install), then run the repo typecheck (pnpm -w run typecheck or per-package tsc --noEmit). Confirm no new TS JSX / StrictMode / startTransition type errors; if errors occur, fix types or revert the bump.

apps/meteor/package.json (17)

69-74: Babel toolchain bump looks good; ensure lockfile dedup and config compatibility.

Nice move to align to ~7.28.x. Please double‑check there aren’t mixed Babel majors/presets in the workspace and that Meteor’s build uses these versions.

Consider validating with CI: yarn dedupe && yarn eslint && yarn typecheck && yarn testunit.


89-91: Testing Library updates LGTM.

Versions align with React 18.3; no concerns spotted.


178-178: ESLint + plugins compatibility check.

eslint is ~8.45.0 while plugins are fairly new. Ensure no peer‑dep warnings or rule failures due to min‑version expectations.

Run: eslint --version && node -v and check plugin peer ranges in lockfile.

Also applies to: 182-182


211-211: source-map bump acknowledged.

No issues expected; keep an eye on devtool compatibility in Storybook/Webpack.


225-225: @babel/runtime aligned with Babel core—LGTM.


235-235: OAuth2 server minor bump—run auth flows in CI.

Minor releases sometimes tweak token validation. Please run E2E covering authorization code, refresh, and revocation.


258-258: Internal Fuselage/string-helpers/icon packages: check cross‑package compatibility.

These patch bumps look safe; verify peer ranges across @rocket.chat/* remain satisfied to avoid multiple version trees at runtime.

Also applies to: 266-266, 296-297


310-310: Slack RTM API bump—LGTM.

Node 18+ required; consistent with toolchain.


314-314: xmldom patched—good security hygiene.

0.8.11 includes fixes for prior CVEs; approve.


331-332: CodeMirror pin—LGTM.

No breaking changes expected within 5.65.x.


391-392: mailparser patch—LGTM.


396-397: meteor-node-stubs patch—LGTM.

Helps with Node polyfills under Meteor.


450-451: typia/ua-parser-js patches—LGTM.


461-462: Zustand 5.x: verify migration status.

If you recently moved from 4.x, confirm middleware (persist/devtools) and store typing updates are accounted for. If already on 5.x, this is a safe patch bump.


135-135: Verify Meteor's bundled Node and align @types/node to that major.

Root Volta pins Node = 22.16.0 (apps/meteor extends root), so @types/node "~22.16.5" matches the dev pin; [email protected] may bundle a different Node for runtime — confirm and adjust.
apps/meteor/package.json — "@types/node": "~22.16.5"

  • Run: cd apps/meteor && meteor node --version (or meteor node -e "console.log(process.version)")
  • If Meteor bundles Node 20 → change @types/node to ^20.x; if Meteor bundles Node 22 → leave as-is.

190-190: Jest 30 upgrade — transform config verified: presets use @swc/jest; no babel-jest found.

Quick scan shows packages/jest-presets/src/server/jest-preset.ts and packages/jest-presets/src/client/jest-preset.ts define "transform" -> ['@swc/jest', ...], and consumer jest.config.ts files extend those presets (setupFilesAfterEnv spread); no occurrences of "babel-jest" were found. (jestjs.io)


154-154: Keep @types/supertest — supertest v7 does not bundle its own types.

NPM shows supertest v7 relies on DefinitelyTyped (don't remove @types); the published typings are @types/[email protected] — keep (or update) that devDependency if you see type errors. (npmjs.com)

Likely an incorrect or invalid review comment.

Comment on lines +26 to +29
"@rocket.chat/string-helpers": "~0.32.0",
"@rocket.chat/tools": "workspace:^",
"@rocket.chat/tracing": "workspace:^",
"@types/node": "~22.16.1",
"@types/node": "~22.16.5",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

Align Node types with toolchain; prefer devDependency.

  • @types/node bumped to ~22.16.5—ensure root engines.node/volta.node are ≥ 22.16.5 to avoid lib mismatch during type-checks.
  • Consider moving @types/node from dependencies to devDependencies to avoid shipping type packages at runtime (inconsistent with other packages in the repo).

Run this read-only check to validate engine pins and spot packages that ship @types/node as a runtime dep:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Root engines/volta pins:"
jq -r '{engines: .engines.node, volta: .volta.node} | @json' package.json

echo -e "\nPackages with @types/node under dependencies (should be devDependencies):"
fd -t f package.json -H | while read -r f; do
  has_dep=$(jq -e 'has("dependencies") and (.dependencies | has("@types/node"))' "$f" >/dev/null 2>&1 && echo yes || echo no)
  if [[ "$has_dep" == "yes" ]]; then
    echo "$f: $(jq -r '.dependencies["@types/node"]' "$f")"
  fi
done

Length of output: 491


Bump root Node pin to 22.16.5 and move @types/node to devDependencies

  • Update repo root package.json: set engines.node and volta.node from "22.16.0" → "22.16.5".
  • Move "@types/node": "~22.16.5" from dependencies → devDependencies in:
    • ee/apps/account-service/package.json
    • ee/apps/authorization-service/package.json
    • ee/apps/omnichannel-transcript/package.json
    • ee/apps/presence-service/package.json
    • ee/apps/queue-worker/package.json
    • ee/apps/stream-hub-service/package.json
    • ee/packages/omnichannel-services/package.json

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (2)
ee/apps/stream-hub-service/package.json (1)

25-27: Move @types/node to devDependencies and align Node pin with types.

Type packages shouldn’t ship at runtime. Also ensure root engines/Volta Node ≥ 22.16.5 to match these types.

Apply:

 "dependencies": {
   ...
-  "@rocket.chat/string-helpers": "~0.32.0",
+  "@rocket.chat/string-helpers": "~0.32.0",
   ...
-  "@types/node": "~22.16.5",
+  // (moved to devDependencies)
   ...
 },
 "devDependencies": {
   ...
+  "@types/node": "~22.16.5",
   ...
 }

Quick check:

#!/bin/bash
jq -r '{root_engines: .engines.node, root_volta: .volta.node} | @json' package.json
fd -t f package.json -H | xargs -I{} jq -r 'select(.dependencies["@types/node"]) | "\(.name) -> deps:@types/node \(.dependencies["@types/node"])"' {}
ee/apps/account-service/package.json (1)

26-29: Same: move @types/node to devDependencies; ensure Node pin ≥ 22.16.5.

Duplicates earlier note; avoid shipping types at runtime and keep toolchain aligned.

 "dependencies": {
   ...
-  "@rocket.chat/string-helpers": "~0.32.0",
+  "@rocket.chat/string-helpers": "~0.32.0",
   ...
-  "@types/node": "~22.16.5",
+  // (moved to devDependencies)
   ...
 },
 "devDependencies": {
   ...
+  "@types/node": "~22.16.5",
   ...
 }

Quick check:

#!/bin/bash
jq -r '{root_engines: .engines.node, root_volta: .volta.node} | @json' package.json
🧹 Nitpick comments (1)
packages/patch-injection/package.json (1)

8-11: Optional: align @types/jest with jest minor.

Consider updating "@types/jest" to the same minor (~30.1.x) to reduce type drift, if available. Non-blocking.

-    "@types/jest": "~30.0.0",
+    "@types/jest": "~30.1.0",
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between fc8451e and 32b6d35.

⛔ Files ignored due to path filters (14)
  • apps/meteor/client/views/audit/components/__snapshots__/AppInfoField.spec.tsx.snap is excluded by !**/*.snap
  • apps/meteor/client/views/audit/components/__snapshots__/SecurityLogDisplayModal.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-client/src/components/AnnouncementBanner/__snapshots__/AnnouncementBanner.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposer.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposerHint.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageFooterCallout/__snapshots__/MessageFooterCallout.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfButton/__snapshots__/VideoConfButton.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfController/__snapshots__/VideoConfController.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfMessage/__snapshots__/VideoConfMessage.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipActionButton/__snapshots__/VoipActionButton.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipActions/__snapshots__/VoipActions.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipContactId/__snapshots__/VoipContactId.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipPopup/__snapshots__/VoipPopup.spec.tsx.snap is excluded by !**/*.snap
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (61)
  • apps/meteor/client/omnichannel/reports/components/BarChart.tsx (1 hunks)
  • apps/meteor/ee/server/services/package.json (2 hunks)
  • apps/meteor/package.json (15 hunks)
  • apps/uikit-playground/package.json (2 hunks)
  • ee/apps/account-service/package.json (1 hunks)
  • ee/apps/authorization-service/package.json (1 hunks)
  • ee/apps/ddp-streamer/package.json (2 hunks)
  • ee/apps/omnichannel-transcript/package.json (2 hunks)
  • ee/apps/presence-service/package.json (1 hunks)
  • ee/apps/queue-worker/package.json (1 hunks)
  • ee/apps/stream-hub-service/package.json (1 hunks)
  • ee/packages/license/package.json (1 hunks)
  • ee/packages/network-broker/package.json (1 hunks)
  • ee/packages/omni-core-ee/package.json (1 hunks)
  • ee/packages/omnichannel-services/package.json (2 hunks)
  • ee/packages/pdf-worker/package.json (1 hunks)
  • ee/packages/presence/package.json (1 hunks)
  • ee/packages/ui-theming/package.json (1 hunks)
  • package.json (1 hunks)
  • packages/api-client/package.json (1 hunks)
  • packages/apps-engine/package.json (2 hunks)
  • packages/base64/package.json (1 hunks)
  • packages/cas-validate/package.json (1 hunks)
  • packages/core-services/package.json (2 hunks)
  • packages/core-typings/package.json (1 hunks)
  • packages/ddp-client/package.json (1 hunks)
  • packages/eslint-config/package.json (1 hunks)
  • packages/freeswitch/package.json (1 hunks)
  • packages/fuselage-ui-kit/package.json (2 hunks)
  • packages/gazzodown/package.json (3 hunks)
  • packages/http-router/package.json (1 hunks)
  • packages/i18n/package.json (1 hunks)
  • packages/jest-presets/package.json (2 hunks)
  • packages/jwt/package.json (1 hunks)
  • packages/livechat/package.json (3 hunks)
  • packages/message-parser/package.json (1 hunks)
  • packages/message-types/package.json (1 hunks)
  • packages/mock-providers/package.json (1 hunks)
  • packages/models/package.json (1 hunks)
  • packages/mongo-adapter/package.json (1 hunks)
  • packages/omni-core/package.json (1 hunks)
  • packages/password-policies/package.json (1 hunks)
  • packages/patch-injection/package.json (1 hunks)
  • packages/peggy-loader/package.json (1 hunks)
  • packages/random/package.json (1 hunks)
  • packages/release-action/package.json (1 hunks)
  • packages/release-changelog/package.json (1 hunks)
  • packages/rest-typings/package.json (1 hunks)
  • packages/server-fetch/package.json (1 hunks)
  • packages/sha256/package.json (1 hunks)
  • packages/storybook-config/package.json (2 hunks)
  • packages/tools/package.json (1 hunks)
  • packages/tracing/package.json (1 hunks)
  • packages/ui-avatar/package.json (1 hunks)
  • packages/ui-client/package.json (2 hunks)
  • packages/ui-composer/package.json (2 hunks)
  • packages/ui-contexts/package.json (1 hunks)
  • packages/ui-kit/package.json (1 hunks)
  • packages/ui-video-conf/package.json (2 hunks)
  • packages/ui-voip/package.json (2 hunks)
  • packages/web-ui-registration/package.json (2 hunks)
✅ Files skipped from review due to trivial changes (3)
  • ee/apps/queue-worker/package.json
  • packages/jwt/package.json
  • packages/mongo-adapter/package.json
🚧 Files skipped from review as they are similar to previous changes (55)
  • packages/peggy-loader/package.json
  • packages/tools/package.json
  • packages/tracing/package.json
  • ee/packages/license/package.json
  • ee/packages/omnichannel-services/package.json
  • packages/cas-validate/package.json
  • packages/ui-client/package.json
  • packages/ui-composer/package.json
  • packages/eslint-config/package.json
  • ee/packages/pdf-worker/package.json
  • packages/message-types/package.json
  • packages/i18n/package.json
  • package.json
  • packages/base64/package.json
  • packages/api-client/package.json
  • ee/apps/authorization-service/package.json
  • ee/packages/network-broker/package.json
  • ee/packages/omni-core-ee/package.json
  • ee/apps/presence-service/package.json
  • packages/ui-contexts/package.json
  • packages/random/package.json
  • packages/password-policies/package.json
  • packages/ddp-client/package.json
  • ee/apps/omnichannel-transcript/package.json
  • packages/sha256/package.json
  • apps/meteor/ee/server/services/package.json
  • packages/mock-providers/package.json
  • packages/release-changelog/package.json
  • packages/release-action/package.json
  • apps/meteor/client/omnichannel/reports/components/BarChart.tsx
  • packages/server-fetch/package.json
  • packages/livechat/package.json
  • packages/ui-avatar/package.json
  • packages/models/package.json
  • packages/freeswitch/package.json
  • ee/packages/presence/package.json
  • packages/fuselage-ui-kit/package.json
  • apps/uikit-playground/package.json
  • ee/packages/ui-theming/package.json
  • packages/storybook-config/package.json
  • packages/rest-typings/package.json
  • packages/ui-video-conf/package.json
  • packages/core-services/package.json
  • packages/ui-kit/package.json
  • packages/http-router/package.json
  • packages/apps-engine/package.json
  • packages/omni-core/package.json
  • packages/web-ui-registration/package.json
  • packages/message-parser/package.json
  • packages/gazzodown/package.json
  • apps/meteor/package.json
  • ee/apps/ddp-streamer/package.json
  • packages/jest-presets/package.json
  • packages/core-typings/package.json
  • packages/ui-voip/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: 📦 Build Packages
  • GitHub Check: CodeQL-Build
  • GitHub Check: CodeQL-Build
🔇 Additional comments (2)
ee/apps/stream-hub-service/package.json (1)

25-25: Verify @rocket.chat/string-helpers 0.32.x compatibility.
0.x minor bumps can be breaking — run typecheck in every package that imports it.

  • Location: ee/apps/stream-hub-service/package.json — " @rocket.chat/string-helpers": "~0.32.0".
  • Verify locally:
    • Find usages: rg -n -uu --hidden --glob '!/dist/' "@rocket.chat/string-helpers" -C1
    • Typecheck affected packages: yarn workspace typecheck (e.g. yarn workspace @rocket.chat/stream-hub-service typecheck)
    • Run tests for any packages that import it (stream-hub-service has no tests; its "test" script exits).
  • Attempted pnpm-based checks failed in the sandbox — this repo uses yarn (packageManager: [email protected]).
ee/apps/account-service/package.json (1)

26-26: Confirm @rocket.chat/string-helpers 0.32.x has no breaking changes for this service.

ee/apps/account-service/package.json contains "@rocket.chat/string-helpers": "~0.32.0"; repo search returned no import hits here and pnpm typecheck couldn't be run in the sandbox — run locally and report results:

  • rg -n "@rocket.chat/string-helpers" -S --glob '!/dist/' -C2
  • pnpm --filter "@rocket.chat/account-service" run typecheck
  • pnpm --filter "@rocket.chat/account-service" test -- --reporters=default

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
packages/fuselage-ui-kit/package.json (1)

27-27: Fix dev script to reference existing tsconfig.esm.json

packages/fuselage-ui-kit/package.json: dev script references tsconfig-esm.json (hyphen) but the repo contains tsconfig.esm.json (dot); update so yarn dev doesn't fail.

- "dev": "tsc --watch --preserveWatchOutput -p tsconfig-esm.json",
+ "dev": "tsc --watch --preserveWatchOutput -p tsconfig.esm.json",
packages/mock-providers/package.json (1)

29-29: TS added — tests aren't type‑checked: add Jest/Node types and include test files

  • packages/mock-providers/package.json — add a devDependency for @types/jest (repo uses ~30.0.0) (and @types/node if you want node globals available).
  • packages/mock-providers/tsconfig.json — it extends @rocket.chat/tsconfig/client.json and currently EXCLUDES ./src//*.spec.ts; either remove that exclude or add a test tsconfig/override (or add compilerOptions.types: ["jest","node"] and include "./src//*.spec.ts" and "./jest.config.ts") so test files pick up Jest/Node types and are type‑checked.
🧹 Nitpick comments (4)
packages/jest-presets/package.json (1)

22-23: Keep Jest env packages in patch‑lockstep when possible; current pins are fine.

  • jest-environment-jsdom and jest-environment-node are at 30.1.2 while jest is 30.1.3. That mismatch is typically safe, but prefer aligning to the same patch when 30.1.3 env packages are published to avoid duplicate installs. (npmjs.com)
  • Reminder: since Jest ≥28, jsdom/node envs are external packages; consumers must not rely on built-ins. (stackoverflow.com)

When 30.1.3 of the env packages is available, consider bumping:

-    "jest-environment-jsdom": "~30.1.2",
-    "jest-environment-node": "~30.1.2",
+    "jest-environment-jsdom": "~30.1.3",
+    "jest-environment-node": "~30.1.3",
packages/fuselage-ui-kit/package.json (2)

56-61: Tightening to “~” for fuselage/*: consider aligning peerDeps to compatible minor ranges.

Dev deps are pinned to specific minors, but peerDeps are "*". This can cause mismatched runtime copies for consumers. Recommend constraining peers to compatible minor ranges.

Proposed peerDependency tightening:

 "peerDependencies": {
-  "@rocket.chat/fuselage": "*",
-  "@rocket.chat/fuselage-hooks": "*",
-  "@rocket.chat/fuselage-polyfills": "*",
-  "@rocket.chat/icons": "*",
-  "@rocket.chat/styled": "*",
+  "@rocket.chat/fuselage": ">=0.66 <0.67",
+  "@rocket.chat/fuselage-hooks": ">=0.38 <0.39",
+  "@rocket.chat/fuselage-polyfills": ">=0.31 <0.32",
+  "@rocket.chat/icons": ">=0.44 <0.45",
+  "@rocket.chat/styled": ">=0.32 <0.33",
   ...
 }

32-35: Duplicate test scripts.

Both test and testunit run Jest. Prefer one alias to reduce drift.

Minimal cleanup:

- "testunit": "jest",
+ "testunit": "yarn test",
apps/meteor/client/omnichannel/reports/components/BarChart.tsx (1)

58-58: Avoid potential duplicate React keys for grouped bars.

Using only data.indexValue can collide across multiple keys in the same index. Prefer a composite key.

Apply this diff:

-					key={data.indexValue}
+					key={`${String(data.indexValue)}-${String((data as any).id ?? '')}`}
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 32b6d35 and da3a907.

⛔ Files ignored due to path filters (14)
  • apps/meteor/client/views/audit/components/__snapshots__/AppInfoField.spec.tsx.snap is excluded by !**/*.snap
  • apps/meteor/client/views/audit/components/__snapshots__/SecurityLogDisplayModal.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-client/src/components/AnnouncementBanner/__snapshots__/AnnouncementBanner.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposer.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposerHint.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageFooterCallout/__snapshots__/MessageFooterCallout.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfButton/__snapshots__/VideoConfButton.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfController/__snapshots__/VideoConfController.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfMessage/__snapshots__/VideoConfMessage.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipActionButton/__snapshots__/VoipActionButton.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipActions/__snapshots__/VoipActions.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipContactId/__snapshots__/VoipContactId.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipPopup/__snapshots__/VoipPopup.spec.tsx.snap is excluded by !**/*.snap
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (61)
  • apps/meteor/client/omnichannel/reports/components/BarChart.tsx (1 hunks)
  • apps/meteor/ee/server/services/package.json (2 hunks)
  • apps/meteor/package.json (15 hunks)
  • apps/uikit-playground/package.json (2 hunks)
  • ee/apps/account-service/package.json (1 hunks)
  • ee/apps/authorization-service/package.json (1 hunks)
  • ee/apps/ddp-streamer/package.json (2 hunks)
  • ee/apps/omnichannel-transcript/package.json (2 hunks)
  • ee/apps/presence-service/package.json (1 hunks)
  • ee/apps/queue-worker/package.json (1 hunks)
  • ee/apps/stream-hub-service/package.json (1 hunks)
  • ee/packages/license/package.json (1 hunks)
  • ee/packages/network-broker/package.json (1 hunks)
  • ee/packages/omni-core-ee/package.json (1 hunks)
  • ee/packages/omnichannel-services/package.json (2 hunks)
  • ee/packages/pdf-worker/package.json (1 hunks)
  • ee/packages/presence/package.json (1 hunks)
  • ee/packages/ui-theming/package.json (1 hunks)
  • package.json (1 hunks)
  • packages/api-client/package.json (1 hunks)
  • packages/apps-engine/package.json (2 hunks)
  • packages/base64/package.json (1 hunks)
  • packages/cas-validate/package.json (1 hunks)
  • packages/core-services/package.json (2 hunks)
  • packages/core-typings/package.json (1 hunks)
  • packages/ddp-client/package.json (1 hunks)
  • packages/eslint-config/package.json (1 hunks)
  • packages/freeswitch/package.json (1 hunks)
  • packages/fuselage-ui-kit/package.json (2 hunks)
  • packages/gazzodown/package.json (3 hunks)
  • packages/http-router/package.json (1 hunks)
  • packages/i18n/package.json (1 hunks)
  • packages/jest-presets/package.json (2 hunks)
  • packages/jwt/package.json (1 hunks)
  • packages/livechat/package.json (3 hunks)
  • packages/message-parser/package.json (1 hunks)
  • packages/message-types/package.json (1 hunks)
  • packages/mock-providers/package.json (1 hunks)
  • packages/models/package.json (1 hunks)
  • packages/mongo-adapter/package.json (1 hunks)
  • packages/omni-core/package.json (1 hunks)
  • packages/password-policies/package.json (1 hunks)
  • packages/patch-injection/package.json (1 hunks)
  • packages/peggy-loader/package.json (1 hunks)
  • packages/random/package.json (1 hunks)
  • packages/release-action/package.json (1 hunks)
  • packages/release-changelog/package.json (1 hunks)
  • packages/rest-typings/package.json (1 hunks)
  • packages/server-fetch/package.json (1 hunks)
  • packages/sha256/package.json (1 hunks)
  • packages/storybook-config/package.json (2 hunks)
  • packages/tools/package.json (1 hunks)
  • packages/tracing/package.json (1 hunks)
  • packages/ui-avatar/package.json (1 hunks)
  • packages/ui-client/package.json (2 hunks)
  • packages/ui-composer/package.json (2 hunks)
  • packages/ui-contexts/package.json (1 hunks)
  • packages/ui-kit/package.json (1 hunks)
  • packages/ui-video-conf/package.json (2 hunks)
  • packages/ui-voip/package.json (2 hunks)
  • packages/web-ui-registration/package.json (2 hunks)
✅ Files skipped from review due to trivial changes (1)
  • packages/ddp-client/package.json
🚧 Files skipped from review as they are similar to previous changes (52)
  • packages/password-policies/package.json
  • packages/message-types/package.json
  • packages/omni-core/package.json
  • packages/release-action/package.json
  • packages/random/package.json
  • packages/i18n/package.json
  • ee/apps/stream-hub-service/package.json
  • ee/apps/presence-service/package.json
  • packages/eslint-config/package.json
  • packages/freeswitch/package.json
  • packages/mongo-adapter/package.json
  • ee/apps/authorization-service/package.json
  • packages/ui-video-conf/package.json
  • packages/cas-validate/package.json
  • packages/ui-contexts/package.json
  • package.json
  • packages/rest-typings/package.json
  • packages/server-fetch/package.json
  • packages/release-changelog/package.json
  • packages/api-client/package.json
  • packages/patch-injection/package.json
  • ee/packages/omnichannel-services/package.json
  • packages/apps-engine/package.json
  • packages/ui-composer/package.json
  • packages/jwt/package.json
  • ee/packages/license/package.json
  • ee/apps/ddp-streamer/package.json
  • packages/peggy-loader/package.json
  • packages/base64/package.json
  • apps/meteor/ee/server/services/package.json
  • ee/packages/omni-core-ee/package.json
  • ee/apps/omnichannel-transcript/package.json
  • packages/sha256/package.json
  • packages/tracing/package.json
  • apps/uikit-playground/package.json
  • ee/apps/queue-worker/package.json
  • packages/models/package.json
  • packages/core-typings/package.json
  • ee/apps/account-service/package.json
  • packages/livechat/package.json
  • packages/ui-kit/package.json
  • packages/core-services/package.json
  • ee/packages/pdf-worker/package.json
  • ee/packages/ui-theming/package.json
  • packages/gazzodown/package.json
  • packages/message-parser/package.json
  • ee/packages/presence/package.json
  • packages/http-router/package.json
  • packages/storybook-config/package.json
  • packages/ui-voip/package.json
  • ee/packages/network-broker/package.json
  • packages/ui-client/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: 📦 Build Packages
  • GitHub Check: CodeQL-Build
  • GitHub Check: CodeQL-Build
🔇 Additional comments (16)
packages/tools/package.json (1)

10-10: Confirm monorepo-wide Jest compatibility before merging.

Automated repo scan failed here (shell /dev/fd error). Confirm across the monorepo:

  • All packages use compatible majors of jest, @types/jest, and ts-jest (if present).
  • @rocket.chat/jest-presets supports Jest 30.x.
  • Volta.node / engines.node pins (or root engines) align with Node versions supported by Jest 30.
packages/jest-presets/package.json (2)

32-32: Jest 30.1.3 — confirm Node versions in CI/tooling meet new minimums.

Root package.json Volta pin: node 22.16.0 — satisfies Jest 30 requirement. Still verify per-package package.json engines and CI matrices (.github/workflows, .nvmrc/.node-version, CircleCI, etc.); run:

#!/bin/bash
set -euo pipefail
mapfile -t files < <(find . -name package.json -not -path '*/node_modules/*')
for f in "${files[@]}"; do
  engine=$(jq -r '.engines.node // empty' "$f")
  if [ -n "$engine" ]; then
    printf '%s: %s\n' "$f" "$engine"
  fi
done | sort
jq -r '.volta? // empty' package.json || true

16-18: Approve — SWC + jest-dom look correct; confirm remaining ts-jest usages.

  • packages/jest-presets/package.json has @swc/core ~1.13.5, @swc/jest ~0.2.39 and @testing-library/jest-dom ~6.8.0.
  • packages/jest-presets/src/{client,server}/jest-preset.ts use '@swc/jest' as the transform; no .swcrc files were found.
  • packages/jest-presets/src/client/jest-setup.ts imports "import '@testing-library/jest-dom'"; no uses of '@testing-library/jest-dom/extend-expect' were found and many tests import the modern form.
  • ts-jest remains as a devDependency in several package.json files (e.g., packages/http-router, packages/ui-kit, packages/tracing) — verify those packages are not still configured to use ts-jest transforms or migrate/remove them if you intend to standardize on @swc/jest.
packages/web-ui-registration/package.json (5)

20-23: Validate Babel 7.28 bump with TS 5.9 & Storybook — run local build & Storybook

Sandbox verification failed (pnpm workspace not available; .storybook / babel configs not found). Inspect packages/web-ui-registration/package.json (lines 20–23) and run locally from the repo workspace root or from the package dir:

From repo root:

pnpm -w -r --filter @rocket.chat/web-ui-registration build
pnpm -w -r --filter @rocket.chat/web-ui-registration typecheck
pnpm -w -r --filter @rocket.chat/web-ui-registration storybook

Or from the package folder:

cd packages/web-ui-registration
pnpm build
pnpm typecheck
pnpm storybook

Check for deprecated/impactful Babel options:

rg -nP --glob '!**/dist/**' -C2 'useBuiltIns|assumptions|loose|runtime' .storybook babel* packages/web-ui-registration || true

If build or Storybook fails, attach the error output and the .storybook / babel config snippets for follow-up.


32-32: Icons 0.44.0: watch for renamed/removed glyphs.

Typecheck should surface missing exports/usages. Location: packages/web-ui-registration/package.json ('@rocket.chat/icons': '~0.44.0').

Sandbox verification failed (pnpm workspace flag / rg tsx type). Run locally to verify:

cd packages/web-ui-registration
pnpm install
pnpm run typecheck

# find Icon usages
rg -nP '\bIcon[A-Z][A-Za-z0-9]+' packages/web-ui-registration/src -S -C1 --glob '**/*.{ts,tsx,js,jsx}' || true

27-28: Resolved — versions already tightened to ~.
All package.json files reference @rocket.chat/fuselage@~0.66.4 and @rocket.chat/fuselage-hooks@~0.38.0; no differing minor versions found.


50-50: React types patch bump looks safe.
Workspace packages use @types/react ~18.3.24; react-dom dependents are at ~18.3.1 (not 18.3.7) and TypeScript is ~5.9.2 — no conflicting versions detected.


47-48: @testing-library/react 16.x — run workspace tests and verify userEvent/query changes.

  • packages/web-ui-registration/package.json contains "@testing-library/react": "~16.3.0" (lines 47–48).
  • Repo has many tests importing userEvent and using userEvent.setup (e.g. packages/ui-voip/src/components/VoipPopup/views/VoipOngoingView.spec.tsx).
  • Test run here failed (pnpm error: "--workspace-root may only be used inside a workspace"); run full workspace tests from the repo root/CI (pnpm -w -r test) and address failures.
  • Ensure @testing-library/user-event is pinned consistently (v14.x seen) and update tests for any userEvent import/API or query-option breaking changes.
packages/fuselage-ui-kit/package.json (3)

86-86: Confirm @rocket.chat/jest-presets peer deps support Jest 30 & Babel 7.28.
packages/fuselage-ui-kit/package.json sets "jest": "~30.1.3"; the verification script returned no output (couldn't locate @rocket.chat/jest-presets/package.json). Confirm @rocket.chat/jest-presets' package.json declares compatible peerDependencies for "jest" (v30) and Babel (>=7.28), or update the preset before merging.


77-80: RTL 16.x & user-event 14.6 — verify tests and jest-dom

  • jest-dom is configured: import '@testing-library/jest-dom' found in the Jest setup (line 6).
  • ripgrep returned unrecognized file type: tsx — re-run a repo-wide search without --type filters (e.g. rg -n "@testing-library/(react|dom|user-event)" -S) to confirm no .tsx tests require matcher/behavior updates.

48-51: Babel 7.28 bump — verify Node / Storybook / Jest transformer compatibility

Root package.json declares "engines.node": "22.16.0" and packages/fuselage-ui-kit/devDependencies include @babel/* 7.28.x and Storybook 8.6.x — verify that Node 22.16.0 meets the minimum requirements for Babel 7.28 and Storybook 8.6, and confirm the Jest transformer chain still uses a compatible babel-jest via your jest presets.

Files to check: root package.json (engines.node), packages/fuselage-ui-kit/package.json (devDependencies), packages/jest-presets/package.json and any jest.config.* or package.json "jest" entries.

apps/meteor/client/omnichannel/reports/components/BarChart.tsx (1)

60-60: SVG textAnchor fix is correct and RTL‑aware.

Switching from the invalid 'left' to spec‑compliant 'start' matches SVG/React types and improves RTL behavior. LGTM.

Please visually check LTR/RTL and reversed horizontal layouts to confirm labels don’t clip.

packages/ui-avatar/package.json (1)

6-6: Dev toolchain bumps look consistent.

Babel/fuselage/icons/@types/react updates align with the repo‑wide versions. No API surface change here.

Please run the package’s typecheck locally to confirm no fuselage/types fallout.

Also applies to: 9-10, 13-13, 15-15

apps/meteor/package.json (2)

69-74: Confirmed: @babel/[email protected] supports ESLint ^7.x and ^8.x.
Current ESLint ~8.45.0 is within the supported range — no change required.


117-117: Jest 30 upgrade — confirm testEnvironment & remove deprecated options.

  • You aligned jest/@types/jest to v30 (apps/meteor/package.json — lines 117, 190). Ensure Jest config (jest.config.js or package.json "jest" or preset like @rocket.chat/jest-presets) explicitly sets testEnvironment to "jsdom" or "node".
  • Remove/replace deprecated/removed options that break on Jest 30 (examples to search for: testURL, runner: "jest-jasmine2", any references to jest-jasmine2).
  • Automated grep in the review sandbox returned no files — run a local search for the above and update configs if found.
packages/mock-providers/package.json (1)

19-22: Jest 30 + Testing Library — verified: no deprecated imports/configs found

Repo-wide checks found no occurrences of "@testing-library/jest-dom/extend-expect" and no deprecated Jest 30 keys (testURL, jest-jasmine2, testEnvironmentOptions). A type-only export remains at packages/jest-presets/src/client/index.ts (used to cascade matcher types) — safe to keep.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
apps/meteor/package.json (1)

450-452: Consolidate typia to a single workspace entry

typia is declared in packages/ui-kit/package.json:57, packages/core-typings/package.json:37, and apps/meteor/package.json:450 (all "~9.7.2"); hoist or centralize this dependency to avoid duplicate bundles. ua-parser-js and zustand are only in apps/meteor (lines 451 and 461) — no cross-workspace duplicates found.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between da3a907 and 89f2f2a.

⛔ Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (14)
  • apps/meteor/package.json (15 hunks)
  • apps/uikit-playground/package.json (2 hunks)
  • ee/packages/ui-theming/package.json (1 hunks)
  • packages/fuselage-ui-kit/package.json (2 hunks)
  • packages/gazzodown/package.json (3 hunks)
  • packages/livechat/package.json (3 hunks)
  • packages/storybook-config/package.json (2 hunks)
  • packages/ui-avatar/package.json (1 hunks)
  • packages/ui-client/package.json (2 hunks)
  • packages/ui-composer/package.json (2 hunks)
  • packages/ui-contexts/package.json (1 hunks)
  • packages/ui-video-conf/package.json (2 hunks)
  • packages/ui-voip/package.json (2 hunks)
  • packages/web-ui-registration/package.json (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (12)
  • packages/ui-contexts/package.json
  • packages/ui-composer/package.json
  • packages/ui-video-conf/package.json
  • packages/storybook-config/package.json
  • packages/web-ui-registration/package.json
  • apps/uikit-playground/package.json
  • ee/packages/ui-theming/package.json
  • packages/ui-avatar/package.json
  • packages/fuselage-ui-kit/package.json
  • packages/ui-voip/package.json
  • packages/ui-client/package.json
  • packages/livechat/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: 📦 Build Packages
  • GitHub Check: CodeQL-Build
  • GitHub Check: CodeQL-Build
🔇 Additional comments (15)
apps/meteor/package.json (11)

225-235: Runtime libs: patch bumps only—LGTM.

@babel/runtime and oauth2-server patch bumps are safe.


310-315: Audit passed — no high-severity advisories for the bumped packages.
Ran yarn npm audit --severity high → "No audit suggestions". No further action required.


69-73: Babel toolchain bumps look consistent — run a quick build smoke.
rg shows @babel/* pinned to ~7.28.x across the workspace and yarn dedupe recommends consolidating older ranges to 7.28.4. Run Storybook and Meteor builds (apps/meteor — lines 69–73) to catch any preset/plugin option mismatches.


256-259: Fuselage family: align versions across workspaces

Most workspaces are already pinned to ~0.66.4 / ~0.37.2 / ~0.31.25 / ~0.33.2 / ~0.44.0; several package.json files use "" and yarn dedupe reports @rocket.chat/fuselage-hooks@^0.37.0 can be deduped to 0.37.2. Replace '' and any '^' ranges with the same ~ ranges (or run yarn dedupe and commit the lockfile) to prevent multiple runtime versions.

Affected files with "*" entries:

  • packages/ui-voip/package.json (lines 78-80)
  • ee/packages/ui-theming/package.json (lines 41-43)
  • packages/ui-video-conf/package.json (lines 64-66)
  • packages/ui-contexts/package.json (line 30)
  • packages/ui-kit/package.json (line 60)
  • packages/ui-composer/package.json (lines 59-60)
  • packages/ui-avatar/package.json (line 40)
  • packages/ui-client/package.json (lines 62-64)
  • packages/storybook-config/package.json (lines 35-36)
  • packages/livechat/package.json (line 96)
  • packages/gazzodown/package.json (lines 87-88)
  • packages/fuselage-ui-kit/package.json (lines 103-106)

190-191: Jest 30 + @types/jest 30: confirm @rocket.chat/jest-presets compatibility.

packages/jest-presets/package.json shows peerDependencies: null — no declared Jest peer, so compatibility is inconclusive; verify the preset’s config/transforms/runners in packages/jest-presets with Jest 30.

  • Run the monorepo test-suite using jest@30.
  • If compatible, add "peerDependencies": { "jest": "^30" } to packages/jest-presets/package.json (or document supported Jest versions).

93-93: Node types v22 — runtime pinned to Node 22.16.0 (OK). Volta and Dockerfiles use node:22.16.0; one build stage (apps/meteor/ee/server/services/Dockerfile) uses node:22.14.0 as a build image but final images are 22.16.0. @types/node ~22.16.5 is compatible.


211-212: source-map and supertest bumps: no action needed.
source-map ~0.7.6 is fine. supertest v7 does not ship TypeScript types, so keep @types/supertest (~6.0.3) — found in packages/http-router/package.json and apps/meteor/package.json.


331-331: Verify client bundle doesn't pull Node stubs / mailparser via codemirror.

Previous repo search returned no hits; manual verification required — run these checks and report results:

  • rg -n --hidden -S 'mailparser|meteor-node-stubs|meteor-node-stub|node-libs-browser' -g '!/node_modules/'
  • rg -n 'mailparser|meteor-node-stubs' package-lock.json yarn.lock pnpm-lock.yaml -S
  • (cd apps/meteor && npm ls mailparser meteor-node-stubs --all) || true
  • Produce a production client build and search the bundle for stubs: meteor build --directory build-output && rg -n 'mailparser|meteor-node-stubs|node-libs-browser' build-output -S

Location: apps/meteor/package.json (lines ~331 and ~391-396).


256-259: Policy check — confirm ^ → ~ for runtime deps aligns with Dependabot automation

Dependabot is configured (.github/dependabot.yml: npm, daily, labeled "automerge"). Changing ^ → ~ in apps/meteor/package.json limits updates to patch releases (reduces minor-bump PRs); confirm this is intentional for these runtime deps or revert to ^.


179-183: No ESLint bump required — peers verified.

[email protected] satisfies the peerRequirements for the listed plugins ([email protected] requires >=8.40.0; react/react-hooks, prettier and testing-library versions in question are compatible with ESLint 8.x) and yarn explain peer-requirements shows no ESLint peer warnings.


89-91: Testing Library v16 bump — peers appear provided; deprecation scan failed.

  • yarn explain shows @testing-library/[email protected] and @testing-library/[email protected] provided across the workspace and jest-environment-jsdom supplies [email protected].
  • Ripgrep scan errored (unrecognized file type: tsx), so I couldn't confirm removal of legacy helpers. Re-run this to find risky usages:
    rg -n -S -g '!/node_modules/' -C1 -e 'waitForElement' -e 'waitForElementToBeRemoved' -e 'container.firstChild' -e 'toBeInTheDocument' -e '\bfindBy[A-Z]'
    Confirm no deprecated helpers remain and that Jest/jsdom env versions are compatible.
packages/gazzodown/package.json (4)

55-56: Testing Library upgrades look fine.

React 18.3 is already in devDeps, so these bumps should be safe. Please run the package’s tests and storybook interaction tests to confirm no matcher or RTL API drift.


60-60: Types bump sanity-check — run a local typecheck

@types/react ~18.3.24 with TS ~5.9.2 should be OK. Sandbox run failed (workspace flags invalid; tsc/meteor not found). From the repo root, install deps and run a workspace typecheck and paste the output:
pnpm install && pnpm -w -r run typecheck (or the npm/yarn workspace-equivalent you use).


31-39: Tilde pinning + Fuselage alignment verified.

All packages use @rocket.chat/fuselage ~0.66.4, @rocket.chat/fuselage-hooks ~0.37.2, and @rocket.chat/icons 0.44.0 (peerDependencies set to '*'); no caret (^) ranges found — no mixed ^/ duplication risk.


72-72: Jest 30 upgrade — presets verified (no incompatible options found)
Local @rocket.chat/jest-presets (packages/jest-presets) is present and many packages already pin jest ~30.1.3; repo scan found no occurrences of legacyFakeTimers, jest.useFakeTimers, resetMocks:false, or empty transformIgnorePatterns. Presets use supported fields (transform, transformIgnorePatterns, moduleFileExtensions, setupFilesAfterEnv).
Relevant: packages/jest-presets/src/client/jest-preset.ts, packages/jest-presets/src/server/jest-preset.ts, packages/gazzodown/package.json (jest: ~30.1.3).

@tassoevan tassoevan force-pushed the chore/bump-deps branch 2 times, most recently from 8880aa4 to 9ab51b4 Compare September 22, 2025 20:47
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
packages/sha256/package.json (1)

25-25: Jest 30.1.3 — preset missing peerDependency; Node/Volta pin is compatible

  • packages/jest-presets/package.json: peerDependencies is null — the preset does not explicitly declare peer support for Jest 30; add "peerDependencies": { "jest": "^30.0.0" } to make compatibility explicit.
  • root package.json: engines.node and volta.node are pinned to 22.16.0 — Jest 30 requires Node ≥18, so the pinned Node 22.16.0 is compatible. (jestjs.io)
apps/meteor/package.json (1)

16-57: Housekeeping: document major bumps in PR body and ensure lockfile/dedupe.

Please list notable majors (Jest 30, mongodb 6.x, zustand 5.x, @slack/rtm-api 7.x) in the PR description with migration notes. Also commit the updated yarn.lock and run dedupe to keep workspace clean.

I can draft a short “Breaking changes & verification” section for the PR body.

Also applies to: 478-486

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 8880aa4 and 9ab51b4.

⛔ Files ignored due to path filters (14)
  • apps/meteor/client/views/audit/components/__snapshots__/AppInfoField.spec.tsx.snap is excluded by !**/*.snap
  • apps/meteor/client/views/audit/components/__snapshots__/SecurityLogDisplayModal.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-client/src/components/AnnouncementBanner/__snapshots__/AnnouncementBanner.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposer.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposerHint.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageFooterCallout/__snapshots__/MessageFooterCallout.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfButton/__snapshots__/VideoConfButton.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfController/__snapshots__/VideoConfController.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfMessage/__snapshots__/VideoConfMessage.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipActionButton/__snapshots__/VoipActionButton.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipActions/__snapshots__/VoipActions.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipContactId/__snapshots__/VoipContactId.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipPopup/__snapshots__/VoipPopup.spec.tsx.snap is excluded by !**/*.snap
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (61)
  • apps/meteor/client/omnichannel/reports/components/BarChart.tsx (1 hunks)
  • apps/meteor/ee/server/services/package.json (2 hunks)
  • apps/meteor/package.json (15 hunks)
  • apps/uikit-playground/package.json (2 hunks)
  • ee/apps/account-service/package.json (1 hunks)
  • ee/apps/authorization-service/package.json (1 hunks)
  • ee/apps/ddp-streamer/package.json (2 hunks)
  • ee/apps/omnichannel-transcript/package.json (2 hunks)
  • ee/apps/presence-service/package.json (1 hunks)
  • ee/apps/queue-worker/package.json (1 hunks)
  • ee/apps/stream-hub-service/package.json (1 hunks)
  • ee/packages/license/package.json (1 hunks)
  • ee/packages/network-broker/package.json (1 hunks)
  • ee/packages/omni-core-ee/package.json (1 hunks)
  • ee/packages/omnichannel-services/package.json (2 hunks)
  • ee/packages/pdf-worker/package.json (1 hunks)
  • ee/packages/presence/package.json (1 hunks)
  • ee/packages/ui-theming/package.json (1 hunks)
  • package.json (1 hunks)
  • packages/api-client/package.json (1 hunks)
  • packages/apps-engine/package.json (2 hunks)
  • packages/base64/package.json (1 hunks)
  • packages/cas-validate/package.json (1 hunks)
  • packages/core-services/package.json (2 hunks)
  • packages/core-typings/package.json (1 hunks)
  • packages/ddp-client/package.json (1 hunks)
  • packages/eslint-config/package.json (1 hunks)
  • packages/freeswitch/package.json (1 hunks)
  • packages/fuselage-ui-kit/package.json (2 hunks)
  • packages/gazzodown/package.json (3 hunks)
  • packages/http-router/package.json (1 hunks)
  • packages/i18n/package.json (1 hunks)
  • packages/jest-presets/package.json (2 hunks)
  • packages/jwt/package.json (1 hunks)
  • packages/livechat/package.json (3 hunks)
  • packages/message-parser/package.json (1 hunks)
  • packages/message-types/package.json (1 hunks)
  • packages/mock-providers/package.json (1 hunks)
  • packages/models/package.json (1 hunks)
  • packages/mongo-adapter/package.json (1 hunks)
  • packages/omni-core/package.json (1 hunks)
  • packages/password-policies/package.json (1 hunks)
  • packages/patch-injection/package.json (1 hunks)
  • packages/peggy-loader/package.json (1 hunks)
  • packages/random/package.json (1 hunks)
  • packages/release-action/package.json (1 hunks)
  • packages/release-changelog/package.json (1 hunks)
  • packages/rest-typings/package.json (1 hunks)
  • packages/server-fetch/package.json (1 hunks)
  • packages/sha256/package.json (1 hunks)
  • packages/storybook-config/package.json (2 hunks)
  • packages/tools/package.json (1 hunks)
  • packages/tracing/package.json (1 hunks)
  • packages/ui-avatar/package.json (1 hunks)
  • packages/ui-client/package.json (2 hunks)
  • packages/ui-composer/package.json (2 hunks)
  • packages/ui-contexts/package.json (1 hunks)
  • packages/ui-kit/package.json (1 hunks)
  • packages/ui-video-conf/package.json (2 hunks)
  • packages/ui-voip/package.json (2 hunks)
  • packages/web-ui-registration/package.json (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (56)
  • ee/apps/ddp-streamer/package.json
  • packages/i18n/package.json
  • ee/apps/queue-worker/package.json
  • packages/random/package.json
  • ee/apps/omnichannel-transcript/package.json
  • packages/mongo-adapter/package.json
  • packages/tracing/package.json
  • packages/patch-injection/package.json
  • ee/packages/pdf-worker/package.json
  • packages/release-action/package.json
  • packages/api-client/package.json
  • packages/ui-contexts/package.json
  • ee/apps/presence-service/package.json
  • packages/rest-typings/package.json
  • packages/ddp-client/package.json
  • ee/packages/omnichannel-services/package.json
  • packages/ui-avatar/package.json
  • ee/apps/account-service/package.json
  • packages/omni-core/package.json
  • packages/storybook-config/package.json
  • packages/jwt/package.json
  • ee/packages/omni-core-ee/package.json
  • packages/password-policies/package.json
  • packages/livechat/package.json
  • packages/eslint-config/package.json
  • apps/meteor/ee/server/services/package.json
  • packages/message-types/package.json
  • ee/packages/license/package.json
  • packages/ui-composer/package.json
  • packages/core-services/package.json
  • packages/core-typings/package.json
  • packages/cas-validate/package.json
  • packages/base64/package.json
  • packages/release-changelog/package.json
  • packages/apps-engine/package.json
  • packages/mock-providers/package.json
  • apps/uikit-playground/package.json
  • packages/message-parser/package.json
  • packages/models/package.json
  • packages/server-fetch/package.json
  • packages/ui-video-conf/package.json
  • packages/freeswitch/package.json
  • packages/web-ui-registration/package.json
  • ee/packages/network-broker/package.json
  • package.json
  • packages/gazzodown/package.json
  • packages/jest-presets/package.json
  • packages/ui-voip/package.json
  • ee/packages/presence/package.json
  • packages/ui-kit/package.json
  • packages/fuselage-ui-kit/package.json
  • ee/apps/stream-hub-service/package.json
  • ee/apps/authorization-service/package.json
  • ee/packages/ui-theming/package.json
  • packages/ui-client/package.json
  • apps/meteor/client/omnichannel/reports/components/BarChart.tsx
🔇 Additional comments (17)
packages/peggy-loader/package.json (1)

47-47: LGTM on the @types/node bump; automated audit failed — verify workspace-wide alignment.

Change is scoped to dev types — confirm:

  • All packages use a single @types/node major/minor (22.16.x).
  • Repo root Volta/engines Node version is compatible with Node 22.

Automated audit errored: "/bin/bash: -c: line 8: conditional binary operator expected". Re-run this corrected audit from the repo root and attach the output:

#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n'

echo "Scanning @types/node across workspace…"
find . -name package.json -not -path '*/node_modules/*' -not -path '*/dist/*' -not -path '*/build/*' -not -path '*/.git/*' -print0 |
while IFS= read -r -d '' f; do
  ver=$(jq -r '.devDependencies["@types/node"] // .dependencies["@types/node"] // .peerDependencies["@types/node"] // empty' "$f" 2>/dev/null || true)
  if [ -n "${ver:-}" ] && [ "$ver" != "null" ]; then
    pkg=$(jq -r '.name // empty' "$f" 2>/dev/null || true)
    printf '%s\t%s\t%s\n' "$ver" "$pkg" "$f"
  fi
done | sort -V | tee /tmp/types-node-versions.tsv

printf '\nDistinct @types/node versions:\n'
cut -f1 /tmp/types-node-versions.tsv | sort -V | uniq

printf '\nRoot Volta-pinned Node version (if any):\n'
jq -r '.volta.node // empty' package.json 2>/dev/null || true

printf '\nDistinct TypeScript versions (for awareness):\n'
find . -name package.json -not -path '*/node_modules/*' -not -path '*/dist/*' -not -path '*/build/*' -not -path '*/.git/*' -print0 |
while IFS= read -r -d '' f; do
  ver=$(jq -r '.devDependencies.typescript // .dependencies.typescript // .peerDependencies.typescript // empty' "$f" 2>/dev/null || true)
  if [ -n "${ver:-}" ] && [ "$ver" != "null" ]; then
    printf '%s\t%s\n' "$ver" "$f"
  fi
done | cut -f1 | sort -V | uniq
packages/sha256/package.json (1)

17-18: Keep Babel devDependencies — local babel.config.js references preset-env

packages/sha256/babel.config.js includes presets: ['@babel/preset-env'] (packages/sha256/babel.config.js), so keep @babel/core and @babel/preset-env; remove only if you delete or migrate that babel.config.js.

Likely an incorrect or invalid review comment.

packages/tools/package.json (1)

10-10: Jest 30 bump LGTM — manual repo verification required

Automated sandbox parsing failed, so I couldn't complete a full scan. Quick findings and checks to run locally:

  • packages/tools/package.json: "jest": "~30.1.3" (PR change).
  • Found testEnvironment entries: packages/jest-presets/src/client/jest-preset.ts and packages/jest-presets/src/server/jest-preset.ts — verify no deprecated options (e.g., testURL) are used in these presets or other jest configs.
  • yarn.lock contains jest-circus entries — confirm no explicit runner config or reliance on removed circus options.
  • Verify Node engine / volta.node constraints in root and package package.json files meet Jest 30 requirements.
  • Confirm TypeScript configs (tsconfig*.json) do not force conflicting "types": ["jest"] and that @types/jest isn’t pinned/duplicated in a way that conflicts with built-in Jest types.

Run these checks locally (example):
rg -n --hidden -S -e "testURL" -e "runner.jest-circus" -e "ts-jest/presets/js-with-babel" -e ""@types/jest"" -e ""jest"\s:\s*"~30" --glob '!/node_modules/'

apps/meteor/package.json (11)

182-183: Verify ESLint/testing bumps: ensure plugin peers and Supertest v7 compatibility.

ripgrep skipped all files so I couldn't confirm usage. Manually verify:

  • eslint-plugin-playwright ~2.2.2 with eslint ~8.45.0 produces no peer-dep warnings.
  • supertest ~7.x: search for imports/usages (supertest, .agent(), Response handling) and confirm tests/types/helpers still compile.

Location: apps/meteor/package.json lines 182-183 (also applies to lines 211 and 217).


69-74: Babel @babel/ versions look aligned — repo-wide verification inconclusive*

apps/meteor/package.json shows @babel/* 7.28.x — good. The provided rg check returned "No files were searched", so I could not confirm there are no other @babel/* entries elsewhere; re-run a repo-wide search (e.g. rg -n --hidden --no-ignore-vcs -P "@babel/(core|preset-[^\"]+|eslint-parser|register|runtime)" --glob '!/node_modules/' -C1 or run rg --debug) to confirm.


178-186: ESLint plugin bumps — run a lint smoke test and verify peer deps.

apps/meteor/package.json (lines 178–186; also 188) had multiple eslint-plugin/version bumps. Sandbox scan failed; run these checks locally/CI:

  • Install deps and run lint (e.g. npm ci && npm run lint) — fix any "unknown rule" errors.
  • Search .eslintrc*, package.json (eslintConfig) for deprecated/renamed rules and update rulesets.
  • Address peer-dependency warnings from npm/yarn/pnpm and update lockfile.

316-317: Action: verify & remediate XML parsing/signature deps

  • apps/meteor/package.json (lines 316-317): @xmldom/xmldom ~0.8.11 — 0.8.11 addresses prior xmldom CVEs (e.g., CVE-2022-39353, CVE-2022-37616, CVE-2021-21366). Confirm your lockfile actually resolves to 0.8.11+.
  • xml-crypto: high‑severity CVEs exist (CVE-2024-32962, CVE-2025-29775); patched in >=3.2.1 (and in 6.0.1+). If any resolved dependency is 3.2.0 or older, upgrade to >=3.2.1 or 6.0.1+ or add an npm override/resolution.
  • xml-encryption (3.1.x): no widely published CVEs matching xml-crypto issues, but older releases allow insecure algorithm choices — ensure a maintained release and strong algorithm configuration.
  • Remediation: scan package-lock/yarn.lock for xml-crypto/xml-encryption occurrences; if vulnerable, pin/override to fixed versions and harden parser/signature options (disable entity expansion/XXE, enforce strict KeyInfo/DigestValue validation).

406-406: Confirm Meteor Node >= 16.20.1 and import style for [email protected]

mongodb v6 is not ESM-only (CommonJS require is documented) and requires Node >= 16.20.1. Verify the Meteor app runtime/bundler runs Node >= 16.20.1 and that our code uses CommonJS imports (or switch to dynamic import()/interop build if Meteor forces ESM).

Location: apps/meteor/package.json — line ~406: "mongodb": "6.10.0"


312-313: Slack RTM API ^7.x — verify CJS/ESM compatibility & Node version

@slack/rtm-api v7 is ESM‑first (not strictly ESM‑only) and requires Node.js v18+; requiring it from a CommonJS app can still cause ERR_REQUIRE_ESM.

  • If our app is CommonJS or runs Node <18: either upgrade Node to >=18 and migrate to ESM (or use dynamic import() / a small CJS compat wrapper), or pin @slack/rtm-api to 6.x.
  • Verify runtime Node version and where @slack/rtm-api is imported/required in the codebase.

Location: apps/meteor/package.json lines 312–313


333-334: Confirm browser polyfills (meteor-node-stubs: Buffer/process)

  • apps/meteor/package.json contains: codemirror ~5.65.20 (ln 333), colorette ^2.0.20 (ln 334), mailparser ~3.7.4 (ln 393), meteor-node-stubs ~1.2.24 (ln 398).
  • Repo-wide search for Node globals (Buffer/process/stream/crypto) failed — cannot verify absence of code depending on those shims. Run a full repo search for those identifiers or validate the browser build still provides required polyfills.

452-454: Verify Zustand v5 & Typia ~9.7 compatibility

Sandbox couldn't search the repo — verify locally that upgrading/using these versions doesn't introduce breaking changes.

  • Zustand: check for default import vs named export (e.g. "import create from 'zustand'" → named export if required) and middleware usage (persist, devtools, createJSONStorage).
  • Typia: confirm repository TypeScript version supports typia ~9.7.x and inspect typia call sites/build-time usage.
  • Run locally to confirm (example commands):
    rg -n --hidden --no-ignore -S "from 'zustand'" || true
    rg -n --hidden --no-ignore -S '\b(persist|createJSONStorage|devtools)\b' || true
    rg -n --hidden --no-ignore -S "typia" || true
    rg -n --hidden --no-ignore -S '"typescript"' package.json || true
    sed -n '440,470p' apps/meteor/package.json || true

117-117: Verified — @rocket.chat/jest-presets already targets Jest 30; no config changes required

packages/jest-presets/package.json pins jest ~30.1.3 (and jest-environment-jsdom/node ~30.1.2) and per-package jest.config.ts files import/use these presets (e.g. apps/meteor/jest.config.ts); configs are aligned with Jest 30. Gate the version bump behind CI/unit tests to confirm no runtime issues.


256-261: Approve — confirm workspace @rocket.chat fuselage/icons/string-helpers version ranges

Versions in apps/meteor/package.json (lines 256–261) are aligned and reduce UI-kit skew; approve. Automated verification failed in the sandbox; confirm other workspace package.json files depend on compatible semver ranges for @rocket.chat/fuselage*, @rocket.chat/icons, and @rocket.chat/string-helpers to avoid duplicate bundles.


135-147: Resolved — @types/node 22.x aligns with pinned runtime

Root ./package.json pins engines.node and volta.node to 22.16.0, and apps/meteor (and other packages) use @types/node ~22.16.5 — alignment confirmed, no change required.

packages/http-router/package.json (3)

14-14: supertest ~7.1.4 — verify types by running typecheck/tests

packages/http-router/package.json lists supertest ~7.1.4 with @types/supertest ~6.0.3; run the package's typecheck (npm run typecheck) and unit tests to confirm there are no SuperTest vs TestAgent type mismatches.


11-11: Tilde‑pin for @types/supertest looks OK — confirm import style in tests

packages/http-router/package.json shows "@types/supertest": "~6.0.3" and "supertest": "~7.1.4". Sandbox repo search returned no import matches, so import-style compatibility couldn't be verified automatically. Run the local grep from the original comment to locate any 'supertest' imports; if TypeScript import errors occur, use import * as request from 'supertest' or enable esModuleInterop in tsconfig.


13-15: No change required — ts-jest 29.4.x is compatible with Jest 30.

ts-jest 29.4.0+ declares peerDependencies allowing jest ^29 || ^30; our repo uses ts-jest ~29.4.2, TypeScript ~5.9.2 (>=5.4) and Node >=18, so keeping jest ~30.1.3 is fine. (app.unpkg.com)

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (2)
packages/fuselage-ui-kit/package.json (1)

56-61: Fuselage/icons bumps—watch peer ranges.

Peers are "*" here; if consumers rely on peer warnings, consider setting minimal peer ranges (e.g., ">=0.66") to prevent accidental downgrades.

-    "@rocket.chat/fuselage": "*",
-    "@rocket.chat/fuselage-hooks": "*",
-    "@rocket.chat/icons": "*",
+    "@rocket.chat/fuselage": ">=0.66",
+    "@rocket.chat/fuselage-hooks": ">=0.37",
+    "@rocket.chat/icons": ">=0.44",
apps/meteor/package.json (1)

394-399: mailparser/meteor-node-stubs bumps—ensure Meteor build still resolves shims.

Minor risk area for server-only email parsing; run a minimal mail parse during tests if possible.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 9ab51b4 and 8258879.

⛔ Files ignored due to path filters (14)
  • apps/meteor/client/views/audit/components/__snapshots__/AppInfoField.spec.tsx.snap is excluded by !**/*.snap
  • apps/meteor/client/views/audit/components/__snapshots__/SecurityLogDisplayModal.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-client/src/components/AnnouncementBanner/__snapshots__/AnnouncementBanner.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposer.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposerHint.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageFooterCallout/__snapshots__/MessageFooterCallout.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfButton/__snapshots__/VideoConfButton.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfController/__snapshots__/VideoConfController.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfMessage/__snapshots__/VideoConfMessage.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipActionButton/__snapshots__/VoipActionButton.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipActions/__snapshots__/VoipActions.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipContactId/__snapshots__/VoipContactId.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-voip/src/components/VoipPopup/__snapshots__/VoipPopup.spec.tsx.snap is excluded by !**/*.snap
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (61)
  • apps/meteor/client/omnichannel/reports/components/BarChart.tsx (1 hunks)
  • apps/meteor/ee/server/services/package.json (2 hunks)
  • apps/meteor/package.json (15 hunks)
  • apps/uikit-playground/package.json (2 hunks)
  • ee/apps/account-service/package.json (1 hunks)
  • ee/apps/authorization-service/package.json (1 hunks)
  • ee/apps/ddp-streamer/package.json (2 hunks)
  • ee/apps/omnichannel-transcript/package.json (2 hunks)
  • ee/apps/presence-service/package.json (1 hunks)
  • ee/apps/queue-worker/package.json (1 hunks)
  • ee/apps/stream-hub-service/package.json (1 hunks)
  • ee/packages/license/package.json (1 hunks)
  • ee/packages/network-broker/package.json (1 hunks)
  • ee/packages/omni-core-ee/package.json (1 hunks)
  • ee/packages/omnichannel-services/package.json (2 hunks)
  • ee/packages/pdf-worker/package.json (1 hunks)
  • ee/packages/presence/package.json (1 hunks)
  • ee/packages/ui-theming/package.json (1 hunks)
  • package.json (1 hunks)
  • packages/api-client/package.json (1 hunks)
  • packages/apps-engine/package.json (2 hunks)
  • packages/base64/package.json (1 hunks)
  • packages/cas-validate/package.json (1 hunks)
  • packages/core-services/package.json (2 hunks)
  • packages/core-typings/package.json (1 hunks)
  • packages/ddp-client/package.json (1 hunks)
  • packages/eslint-config/package.json (1 hunks)
  • packages/freeswitch/package.json (1 hunks)
  • packages/fuselage-ui-kit/package.json (2 hunks)
  • packages/gazzodown/package.json (3 hunks)
  • packages/http-router/package.json (1 hunks)
  • packages/i18n/package.json (1 hunks)
  • packages/jest-presets/package.json (2 hunks)
  • packages/jwt/package.json (1 hunks)
  • packages/livechat/package.json (3 hunks)
  • packages/message-parser/package.json (1 hunks)
  • packages/message-types/package.json (1 hunks)
  • packages/mock-providers/package.json (1 hunks)
  • packages/models/package.json (1 hunks)
  • packages/mongo-adapter/package.json (1 hunks)
  • packages/omni-core/package.json (1 hunks)
  • packages/password-policies/package.json (1 hunks)
  • packages/patch-injection/package.json (1 hunks)
  • packages/peggy-loader/package.json (1 hunks)
  • packages/random/package.json (1 hunks)
  • packages/release-action/package.json (1 hunks)
  • packages/release-changelog/package.json (1 hunks)
  • packages/rest-typings/package.json (1 hunks)
  • packages/server-fetch/package.json (1 hunks)
  • packages/sha256/package.json (1 hunks)
  • packages/storybook-config/package.json (2 hunks)
  • packages/tools/package.json (1 hunks)
  • packages/tracing/package.json (1 hunks)
  • packages/ui-avatar/package.json (1 hunks)
  • packages/ui-client/package.json (2 hunks)
  • packages/ui-composer/package.json (2 hunks)
  • packages/ui-contexts/package.json (1 hunks)
  • packages/ui-kit/package.json (1 hunks)
  • packages/ui-video-conf/package.json (2 hunks)
  • packages/ui-voip/package.json (2 hunks)
  • packages/web-ui-registration/package.json (2 hunks)
✅ Files skipped from review due to trivial changes (1)
  • ee/packages/omni-core-ee/package.json
🚧 Files skipped from review as they are similar to previous changes (54)
  • packages/tools/package.json
  • packages/patch-injection/package.json
  • packages/tracing/package.json
  • packages/cas-validate/package.json
  • packages/rest-typings/package.json
  • packages/base64/package.json
  • apps/meteor/client/omnichannel/reports/components/BarChart.tsx
  • ee/apps/presence-service/package.json
  • packages/api-client/package.json
  • ee/apps/account-service/package.json
  • packages/release-changelog/package.json
  • apps/meteor/ee/server/services/package.json
  • packages/ui-video-conf/package.json
  • packages/gazzodown/package.json
  • ee/packages/network-broker/package.json
  • packages/ui-contexts/package.json
  • packages/livechat/package.json
  • packages/storybook-config/package.json
  • packages/core-services/package.json
  • ee/packages/ui-theming/package.json
  • packages/message-parser/package.json
  • packages/ui-voip/package.json
  • ee/apps/omnichannel-transcript/package.json
  • ee/apps/queue-worker/package.json
  • packages/message-types/package.json
  • packages/i18n/package.json
  • packages/core-typings/package.json
  • packages/mock-providers/package.json
  • packages/server-fetch/package.json
  • package.json
  • packages/ui-kit/package.json
  • ee/apps/authorization-service/package.json
  • packages/http-router/package.json
  • packages/password-policies/package.json
  • ee/packages/omnichannel-services/package.json
  • packages/peggy-loader/package.json
  • packages/random/package.json
  • ee/packages/presence/package.json
  • packages/ddp-client/package.json
  • packages/apps-engine/package.json
  • packages/eslint-config/package.json
  • ee/apps/ddp-streamer/package.json
  • ee/packages/license/package.json
  • packages/jwt/package.json
  • ee/apps/stream-hub-service/package.json
  • packages/freeswitch/package.json
  • packages/omni-core/package.json
  • packages/ui-client/package.json
  • packages/jest-presets/package.json
  • packages/ui-avatar/package.json
  • packages/ui-composer/package.json
  • apps/uikit-playground/package.json
  • ee/packages/pdf-worker/package.json
  • packages/web-ui-registration/package.json
🔇 Additional comments (18)
packages/release-action/package.json (1)

13-15: Confirm action Node runtime and align @types/node

  • Checked: packages/release-action/action.yml — no runs.using node declared.
  • Checked: packages/release-action/tsconfig.json — target: "esnext"; "lib" and "types" are commented.
  • Checked: .github/workflows — no setup-node node-version found.
  • Action: confirm whether this action runs on Node 22 or Node 20. If Node 22, add "engines.node": ">=22" to packages/release-action/package.json (keep @types/node ~22.16.5). If Node 20, replace @types/node with a Node20-compatible version.
packages/models/package.json (2)

11-11: Jest 30 bump looks aligned — preset updated, but CI Node and ts-jest/legacy transforms require verification.

  • Most packages use jest ~30.1.3 with @types/jest ~30.0.0; internal preset at packages/jest-presets/package.json is ~30.1.3.
  • Root package.json has no volta/engines, no .nvmrc/.node-version, and no setup-node workflow found — CI Node version is not verifiable here; confirm CI/Volta Node meets Jest 30’s Node requirement.
  • Could not conclusively detect ts-jest or legacy jest transform usage in the sandbox — verify there are no ts-jest deps or custom transform entries in package.json/jest config before merging.

19-19: Approve: tilde-pin @rocket.chat/string-helpers to ~0.32.x — verify API changes from 0.31.x

  • Tilde pin reduces risk; 0.x can be breaking. Sandbox verification here failed to enumerate imports (ripgrep skipped files) and tsc --noEmit could not run; packages/models/package.json shows name "@rocket.chat/models" and TypeScript ~5.9.2.
  • Action: Locally run: rg -n --hidden -S -g '!/node_modules/' '@rocket.chat/string-helpers' to list usages, and in packages/models run npx -y typescript@~5.9.2 --noEmit to confirm no type errors or missing/renamed exports.
packages/sha256/package.json (1)

17-19: Approve — Babel preset/core alignment confirmed.
packages/jest-presets/package.json: no @babel/core or @babel/preset-env in peerDependencies/dependencies/devDependencies; 7.28.x bumps are non-breaking.

apps/meteor/package.json (11)

225-225: @babel/runtime ~7.28—good to keep in sync with core.

No action; just noting parity with devDeps.


317-317: xmldom ~0.8.11—security improvement.

Good move; older versions had CVEs. No action.


69-74: Babel toolchain bumps — OK; no runtime @babel/register references found.

Search returned @babel/register only in apps/meteor/package.json (line 73) and yarn.lock (entry for 7.28.3); no require/import/--require occurrences detected. Verify test/startup CLI or config (e.g., mocha --require @babel/register) still load the intended package if you rely on runtime transpilation.


256-259: Fuselage/fuselage-hooks bumps—UI surface area check.

Scan for removed tokens/components between 0.65→0.66 and hooks 0.36→0.37 (e.g., useMediaQuery signatures).


190-190: Jest 30 — confirm presets & transformers

Found "jest": "~30.1.3" and imports of '@rocket.chat/jest-presets' (apps/meteor/package.json; apps/meteor/jest.config.ts). Verify the workspace @rocket.chat/jest-presets package and any custom transformers (ts-jest / babel-jest / custom) are compatible with Jest v30 and update them if not.


266-266: Icons ~0.44 — verify icon-name compatibility

rg found Icon usages in apps/meteor: client/components/deviceManagement/LoggedOutBanner.tsx (warning), client/components/message/content/location/MapViewFallback.tsx (map-pin), client/components/message/IgnoredContent.tsx (chevron-left), client/components/deviceManagement/DeviceIcon.tsx (dynamic via iconMap, fallback 'globe'), client/components/connectionStatus/ConnectionStatusBar.tsx (warning). Confirm these names weren’t renamed/removed in @rocket.chat/icons v0.44 (check changelog) and run Storybook + e2e.


135-135: Align @types/node with runtime Node (22.16.0)
engines and volta both pin Node to 22.16.0, but package.json requires "@types/node": "~22.16.5" — change @types/node to "~22.16.0" (or update engines/volta to match) to avoid type/runtime divergence.
File: apps/meteor/package.json: line 135


235-235: @node-oauth/oauth2-server 5.2.1 — verify API compatibility.

Repo imports types from the fork and implements the OAuth model/handlers — smoke-test token, refresh, authorize (and userinfo/introspect) flows; verify there are no type/API mismatches with the pinned fork versus @types/oauth2-server (^3.0.18). Relevant files: apps/meteor/server/oauth2-server/model.ts, apps/meteor/server/oauth2-server/oauth.ts, apps/meteor/app/oauth2-server-config/server/oauth/oauth2-server.ts, apps/meteor/package.json.


178-183: Verify ESLint peer compatibility — confirm project's ESLint version

Registry checks show: eslint-plugin-testing-library → eslint ^8.57.0 || ^9.0.0; eslint-plugin-playwright → eslint >=8.40.0; eslint-plugin-react → includes ^9.7; eslint-config-prettier → eslint >=7.0.0. apps/meteor/package.json was not found in the repo — confirm the ESLint version there; if it’s <=8.45, upgrade to >=8.57 or pin compatible plugin versions to avoid resolver/resolution errors.


452-454: typia TS peer OK; verify ua-parser-js ESM/CJS interop

  • typia: yarn.lock shows typia requires TypeScript >=4.8 <5.10 and the repo packages declare "typescript": "~5.9.2" — no TS-minimum conflict.
  • ua-parser-js (~1.0.41) is used with mixed import styles (default and named). Key occurrences: apps/meteor/app/livechat/server/lib/guests.ts, apps/meteor/app/statistics/server/lib/SAUMonitor.ts, apps/meteor/app/statistics/server/lib/UAParserCustom.js, apps/meteor/client/views/omnichannel/.../VisitorClientInfo.tsx, apps/meteor/ee/server/lib/deviceManagement/session.ts, apps/meteor/server/routes/avatar/middlewares/browserVersion.ts. Confirm your build/runtime (webpack/meteor) resolves v1.0.41; if not, unify imports to the package’s actual export shape or switch to require()/interop shim.

463-464: Zustand ~5.0.8 — verify selector equality & persist/devtools after bump

apps/meteor/package.json pins zustand ~5.0.8; repo uses create/useShallow/StoreApi/UseBoundStore across client code and I did not find persist/devtools middleware usage under apps/meteor. If this is a v4→v5 migration, v5 removes create's custom-equality support (use createWithEqualityFn for shallow/custom equality) and changed persist middleware behavior — audit selectors that rely on custom equality and any persist/devtools usage before merging; if the codebase is already on v5, a patch bump is fine. (zustand.docs.pmnd.rs)

packages/fuselage-ui-kit/package.json (3)

48-51: Babel preset/core bump is OK — repo Babel versions are aligned.

All @babel packages are within the ~7.27.x–~7.28.x range (e.g. @babel/core ~7.28.4, @babel/preset-env ~7.28.3, @babel/preset-react/~preset-typescript ~7.27.1), so no further changes required.


77-81: Testing Library v16 (DOM v10) — run tests and fix affected specs

  • package.json uses @testing-library/react ~16.3.0; scan found async queries + userEvent in tests (examples: packages/fuselage-ui-kit/src/elements/UsersSelectElement/UserSelectElement.spec.tsx, ChannelsSelectElement/.{spec,tsx}, UsersSelectElement/MultiUsersSelectElement.spec.tsx, ChannelsSelectElement/MultiChannelsSelectElement.spec.tsx, src/hooks/.spec.tsx).
  • Action: run the test suite; expect fixes for stricter query behavior and user-event timing. Common changes: migrate to userEvent.setup(), await interactions, prefer findBy*/waitFor for async assertions, and remove deprecated APIs.

86-86: Jest 30 adoption — preset already targets Jest 30; no action required.

packages/jest-presets/package.json pins "jest": "~30.1.3" and jest-environment-jsdom/node "~30.1.2", and repository jest.config.ts files import @rocket.chat/jest-presets and use current keys (preset, setupFilesAfterEnv, transformIgnorePatterns, moduleNameMapper) — compatible.

Comment on lines +89 to +87
"@testing-library/dom": "~10.4.1",
"@testing-library/react": "~16.3.0",
"@testing-library/user-event": "~14.6.1",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

🧩 Analysis chain

Testing Library upgrades—risk of flaky UI tests.

Same caveats as above; scan and adjust queries/timers as needed.


🏁 Script executed:

#!/bin/bash
rg -nP --type=ts,tsx -C2 '(findBy.*(within|screen)\(|waitFor\(|act\()' apps/meteor

Length of output: 30


🏁 Script executed:

#!/bin/bash
set -euo pipefail
TARGET_DIR="apps/meteor"
PATTERN='(findBy.*(within|screen)\(|waitFor\(|act\()'

# gather .ts .tsx .js .jsx files
if command -v fd >/dev/null 2>&1; then
  mapfile -t files < <(fd -t f -e ts -e tsx -e js -e jsx "$TARGET_DIR" || true)
else
  mapfile -t files < <(find "$TARGET_DIR" -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" \) -print 2>/dev/null || true)
fi

if [ ${#files[@]} -eq 0 ]; then
  echo "No .ts/.tsx/.js/.jsx files found under $TARGET_DIR"
  exit 0
fi

if command -v rg >/dev/null 2>&1; then
  rg -nP -C2 "$PATTERN" "${files[@]}" || true
else
  grep -nE -C2 "$PATTERN" "${files[@]}" || true
fi

Length of output: 406


🏁 Script executed:

#!/bin/bash
set -euo pipefail

TARGET_DIR="apps/meteor"
TMPFILE=$(mktemp)
trap 'rm -f "$TMPFILE"' EXIT

if [ ! -d "$TARGET_DIR" ]; then
  echo "Directory '$TARGET_DIR' not found"
  exit 0
fi

# collect candidate files
find "$TARGET_DIR" -type f \( -name '*.ts' -o -name '*.tsx' -o -name '*.js' -o -name '*.jsx' \) -print0 > "$TMPFILE" || true

if [ ! -s "$TMPFILE" ]; then
  echo "No .ts/.tsx/.js/.jsx files found under $TARGET_DIR"
  exit 0
fi

PATTERNS=( 'findBy[A-Za-z0-9_]*\(' 'waitFor\(' 'act\(' 'within\(' 'screen\.' )

for patt in "${PATTERNS[@]}"; do
  printf "\n=== PATTERN: %s ===\n" "$patt"
  MATCHED=0
  while IFS= read -r -d '' file; do
    if command -v rg >/dev/null 2>&1; then
      rg -nP -C2 "$patt" "$file" || true
      [ $? -eq 0 ] && MATCHED=1 || true
    else
      grep -nE -C2 "$patt" "$file" || true
      [ $? -eq 0 ] && MATCHED=1 || true
    fi
  done < "$TMPFILE"
  if [ "$MATCHED" -eq 0 ]; then
    echo "(no matches for pattern '$patt')"
  fi
done

Length of output: 232609


Testing Library upgrades — risk of flaky UI tests. Search found widespread use of findBy*/waitFor/act/within/screen across apps/meteor; scan and update affected tests — prefer stable queries (getBy*/getByRole), make waitFor assertions explicit, adjust timeouts, and update user-event patterns as needed.

🤖 Prompt for AI Agents
In apps/meteor/package.json around lines 89 to 91, the Testing Library
dependency upgrades may make existing UI tests flaky; scan all tests in
apps/meteor that use findBy*/waitFor/act/within/screen and update them: prefer
stable queries like getBy*/getByRole over findBy, make waitFor only wrap
explicit assertions (not actions), increase or parameterize timeouts where
network/animation delays exist, replace deprecated or brittle user-event
patterns with current user-event API calls and update any act wrappers
accordingly; run the test suite and fix failing tests iteratively until
stability is restored.

"@rocket.chat/jest-presets": "workspace:~",
"eslint": "~8.45.0",
"jest": "~30.0.5",
"jest": "~30.1.3",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

Jest 30 bump: verify preset and Node compatibility across the monorepo

Looks fine here, but please confirm that @rocket.chat/jest-presets (workspace) and any test transformers (ts-jest/swc) are compatible with Jest 30.1.3, and that the repo’s Node engine (via Volta root) meets Jest 30’s minimum. Also watch for config option renames/deprecations between 29→30.

Run these quick checks:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Root Node engines (via package.json):"
jq -r '.engines // {}' package.json || true

echo -e "\nJest presets referenced:"
rg -nP -C1 '(jest[-_.]config|preset).*rocket\.chat/jest-presets' --type js --type ts --type json || true

echo -e "\nts-jest / swc / babel transformers usage:"
rg -nP -C2 '\b(ts-jest|@swc/jest|babel-jest)\b' --type js --type ts --type json || true

echo -e "\nDeprecated/breaking config surface (sanity scan):"
rg -nP '\b(testURL|preprocessorIgnorePatterns|haste\b|moduleLoader)\b' --type js --type ts --type json || true

echo -e "\nJest major versions in workspace manifests:"
fd package.json -t f | xargs -I{} jq -r '"{}: " + (.devDependencies.jest // .dependencies.jest // "")' {} | rg -n 'jest' || true

Length of output: 2166


Action: fix ts-jest / Jest-30 mismatch and verify presets

  • Root engines.node = 22.16.0 — satisfies Jest 30’s Node (>=18.x) and TypeScript (>=5.4) requirements. (jestjs.io)
  • Found ts-jest ~29.4.2 in packages/ui-kit/package.json, packages/tracing/package.json, packages/http-router/package.json — ts-jest v29 is not tested/supported with Jest 30; either upgrade ts-jest to a Jest‑30‑compatible release when available or pin Jest to v29 across the workspace, then run the full test suite/CI. (kulshekhar.github.io)
  • babel-jest ~30.x and @types/jest ~30.x are present in ee/packages/presence and packages/core-services — those align with Jest 30, but confirm @rocket.chat/jest-presets (packages/jest-presets/*) doesn’t assume older transformer behavior or deprecated config keys; run tests and address snapshot/config changes. (npmjs.com)
🤖 Prompt for AI Agents
In packages/mongo-adapter/package.json around line 21, the project pins "jest":
"~30.1.3" while other workspace packages still use ts-jest v29 and some presets
may assume older Jest behavior; either align the workspace by upgrading all
ts-jest instances to a Jest‑30‑compatible release (when available) and update
any jest presets/config keys accordingly, or downgrade/pin Jest to v29 across
the repo so ts-jest v29 remains supported — after changing package.json
versions, run the full test suite/CI and update @rocket.chat/jest-presets if
they rely on deprecated transformer/config keys or snapshot changes.

"@typescript-eslint/parser": "~5.60.1",
"eslint": "~8.45.0",
"jest": "~30.0.5",
"jest": "~30.1.3",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

Jest 30 is a major; verify transformers, presets, and Node version across the monorepo.

Make sure babel-jest/ts-jest (if used) and @types/jest are compatible, and that our Volta/engines Node version meets Jest 30’s minimum. Also ensure no packages are left on Jest 29.

Apply this repo-scan to surface any mismatches:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Node (volta/engines) at repo root:"
jq -r '.volta.node // .engines.node // "unknown"' package.json || true
echo

echo "Jest versions across workspaces:"
fd -a package.json | while read -r f; do
  v=$(jq -r '(.devDependencies.jest // .dependencies.jest // empty)' "$f")
  if [ -n "$v" ]; then printf "%s => %s\n" "$f" "$v"; fi
done | sort
echo

echo "babel-jest / ts-jest / @types/jest versions:"
for pkg in babel-jest ts-jest @types/jest @rocket.chat/jest-presets; do
  echo ">> $pkg"
  fd -a package.json | while read -r f; do
    v=$(jq -r --arg p "$pkg" '(.devDependencies[$p] // .dependencies[$p] // empty)' "$f")
    if [ -n "$v" ]; then printf "  %s => %s\n" "$f" "$v"; fi
  done | sort
done
echo

echo "Jest config transform references (sanity check):"
rg -nP -g '!**/node_modules/**' '(jest\.config|jest\.setup|package\.json)|\btransform\b' -S || true

Length of output: 7388


Jest 30 upgrade — Node OK; ts-jest 29.x present (action required)

  • Root volta/engines Node is 22.16.0 — satisfies Jest 30’s minimum (Node 18.x). (jestjs.io)
  • No packages remain on Jest 29, but ts-jest is still ~29.4.2 in packages/http-router/package.json, packages/tracing/package.json, packages/ui-kit/package.json — ts-jest v29 is not tested/compatible with Jest 30; upgrade ts-jest to a Jest-30-compatible release (or pin those packages to Jest 29) and verify transforms/presets (@rocket.chat/jest-presets, babel-jest) and @types/jest afterwards. (kulshekhar.github.io)
🤖 Prompt for AI Agents
In packages/sha256/package.json around line 25, the project upgraded to Jest 30
but some packages still use ts-jest v29 (packages/http-router/package.json,
packages/tracing/package.json, packages/ui-kit/package.json) which is
incompatible with Jest 30; update those package.json files to bump ts-jest to a
Jest-30-compatible release (or pin those packages to Jest 29 if you cannot
upgrade), run npm/yarn install, update any jest config transforms/presets (e.g.,
@rocket.chat/jest-presets, babel-jest) to versions compatible with Jest 30, and
ensure @types/jest is aligned with Jest 30, then run the test suite to verify
and fix any transform/preset errors.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (8)
packages/favicon/package.json (1)

7-7: Restore TypeScript to a published release.

TypeScript 5.9.3 still isn’t on npm—installing ~5.9.3 will fail. Please revert this package (and any siblings) to the latest published version (e.g., ~5.9.2) until 5.9.3 actually ships.

ee/apps/stream-hub-service/package.json (1)

25-25: Unpublished @rocket.chat/string-helpers@~0.32.0 still blocks installs

No evidence that 0.32.x has been published since the previous review; leaving this bump in place keeps pnpm/npm install broken for this service. Please revert to the latest released build (0.31.25) or switch to a workspace spec until the package is published.

ee/packages/omni-core-ee/package.json (1)

9-12: Align @types/jest with Jest 30.2.x
Jest is now ~30.2.0, but @types/jest stays at ~30.0.0. That mismatch has already been flagged and will surface TS compile noise—please bump the types to the matching 30.2.x range here (and regenerate the lockfile alongside running tests).

-		"@types/jest": "~30.0.0",
+		"@types/jest": "~30.2.0",
ee/packages/license/package.json (1)

9-14: Update @types/jest to the 30.2.x line
Keeping @types/jest at ~30.0.0 while Jest moves to ~30.2.0 repeats the previously reported mismatch; please bump the type package accordingly so TS stays in sync.

-		"@types/jest": "~30.0.0",
+		"@types/jest": "~30.2.0",
packages/gazzodown/package.json (1)

55-57: Remove the deprecated @types/dompurify.

@types/[email protected] is a deprecated stub—DOMPurify ≥3 ships its own types. Keeping the stub yields empty definitions and TypeScript errors. Drop this devDependency and rely on the types bundled with dompurify~3.2.7.

ee/packages/network-broker/package.json (1)

10-16: Jest 30.2.0 is still unpublished—install will fail.

jest is pinned to ~30.2.0, but that release hasn’t been published on npm, so installs break. Please stay on the latest released 30.1.x or whatever version you confirm exists.

#!/bin/bash
# Verify published Jest versions
npm view jest versions --json | jq -r '.[]' | grep '^30\.' | tail -n 20
packages/ui-voip/package.json (1)

35-36: Confirm @rocket.chat/[email protected] exists before merging.

If 0.37.2 is still unpublished, this bump breaks installs (“No matching version found”). Please publish 0.37.2 or pin to the latest released tag (e.g. ~0.37.1) before merging.

Run this script to confirm availability:

#!/bin/bash
set -euo pipefail
npm view @rocket.chat/fuselage-hooks versions --json | jq -r '.[]' | tail
packages/ui-kit/package.json (1)

48-53: Align Jest and ts-jest majors.

[email protected] only supports Jest 29. With Jest bumped to 30.2.0 the runner fails to start (“Version mismatch between Jest and ts-jest”). Either revert Jest to 29.x or upgrade to a Jest‑30 compatible ts-jest release.

Apply one of these diffs:

-		"jest": "~30.2.0",
-		"ts-jest": "~29.4.4",
+		"jest": "~29.7.0",
+		"ts-jest": "~29.4.4"

or, once ts-jest 30.x is available:

-		"jest": "~30.2.0",
-		"ts-jest": "~29.4.4",
+		"jest": "~30.2.0",
+		"ts-jest": "~30.0.0"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between a70a3f8 and d492687.

⛔ Files ignored due to path filters (11)
  • .yarn/releases/yarn-4.10.3.cjs is excluded by !**/.yarn/**
  • apps/meteor/client/views/audit/components/__snapshots__/AppInfoField.spec.tsx.snap is excluded by !**/*.snap
  • apps/meteor/client/views/audit/components/__snapshots__/SecurityLogDisplayModal.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-client/src/components/AnnouncementBanner/__snapshots__/AnnouncementBanner.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposer.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageComposer/__snapshots__/MessageComposerHint.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-composer/src/MessageFooterCallout/__snapshots__/MessageFooterCallout.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfButton/__snapshots__/VideoConfButton.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfController/__snapshots__/VideoConfController.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-video-conf/src/VideoConfMessage/__snapshots__/VideoConfMessage.spec.tsx.snap is excluded by !**/*.snap
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (78)
  • .yarnrc.yml (1 hunks)
  • apps/meteor/client/omnichannel/reports/components/BarChart.tsx (1 hunks)
  • apps/meteor/ee/server/services/package.json (2 hunks)
  • apps/meteor/package.json (19 hunks)
  • apps/uikit-playground/package.json (2 hunks)
  • ee/apps/account-service/package.json (2 hunks)
  • ee/apps/authorization-service/package.json (2 hunks)
  • ee/apps/ddp-streamer/package.json (3 hunks)
  • ee/apps/federation-service/package.json (1 hunks)
  • ee/apps/omnichannel-transcript/package.json (2 hunks)
  • ee/apps/presence-service/package.json (2 hunks)
  • ee/apps/queue-worker/package.json (2 hunks)
  • ee/apps/stream-hub-service/package.json (2 hunks)
  • ee/packages/federation-matrix/package.json (2 hunks)
  • ee/packages/license/package.json (1 hunks)
  • ee/packages/media-calls/package.json (1 hunks)
  • ee/packages/network-broker/package.json (1 hunks)
  • ee/packages/omni-core-ee/package.json (1 hunks)
  • ee/packages/omnichannel-services/package.json (2 hunks)
  • ee/packages/pdf-worker/package.json (1 hunks)
  • ee/packages/presence/package.json (1 hunks)
  • ee/packages/ui-theming/package.json (2 hunks)
  • package.json (3 hunks)
  • packages/account-utils/package.json (1 hunks)
  • packages/agenda/package.json (1 hunks)
  • packages/api-client/package.json (1 hunks)
  • packages/apps-engine/package.json (2 hunks)
  • packages/apps/package.json (1 hunks)
  • packages/base64/package.json (1 hunks)
  • packages/cas-validate/package.json (1 hunks)
  • packages/core-services/package.json (2 hunks)
  • packages/core-typings/package.json (2 hunks)
  • packages/cron/package.json (1 hunks)
  • packages/ddp-client/package.json (1 hunks)
  • packages/desktop-api/package.json (1 hunks)
  • packages/eslint-config/package.json (2 hunks)
  • packages/favicon/package.json (1 hunks)
  • packages/freeswitch/package.json (1 hunks)
  • packages/fuselage-ui-kit/package.json (3 hunks)
  • packages/gazzodown/package.json (3 hunks)
  • packages/http-router/package.json (1 hunks)
  • packages/i18n/package.json (1 hunks)
  • packages/instance-status/package.json (1 hunks)
  • packages/jest-presets/package.json (2 hunks)
  • packages/jwt/package.json (1 hunks)
  • packages/livechat/package.json (4 hunks)
  • packages/log-format/package.json (1 hunks)
  • packages/logger/package.json (1 hunks)
  • packages/media-signaling/package.json (1 hunks)
  • packages/message-parser/package.json (1 hunks)
  • packages/message-types/package.json (1 hunks)
  • packages/mock-providers/package.json (1 hunks)
  • packages/model-typings/package.json (1 hunks)
  • packages/models/package.json (1 hunks)
  • packages/mongo-adapter/package.json (1 hunks)
  • packages/node-poplib/package.json (1 hunks)
  • packages/omni-core/package.json (1 hunks)
  • packages/password-policies/package.json (1 hunks)
  • packages/patch-injection/package.json (1 hunks)
  • packages/peggy-loader/package.json (1 hunks)
  • packages/random/package.json (1 hunks)
  • packages/release-action/package.json (1 hunks)
  • packages/release-changelog/package.json (1 hunks)
  • packages/rest-typings/package.json (1 hunks)
  • packages/server-cloud-communication/package.json (1 hunks)
  • packages/server-fetch/package.json (1 hunks)
  • packages/sha256/package.json (1 hunks)
  • packages/storybook-config/package.json (2 hunks)
  • packages/tools/package.json (1 hunks)
  • packages/tracing/package.json (1 hunks)
  • packages/ui-avatar/package.json (2 hunks)
  • packages/ui-client/package.json (3 hunks)
  • packages/ui-composer/package.json (2 hunks)
  • packages/ui-contexts/package.json (1 hunks)
  • packages/ui-kit/package.json (1 hunks)
  • packages/ui-video-conf/package.json (2 hunks)
  • packages/ui-voip/package.json (2 hunks)
  • packages/web-ui-registration/package.json (4 hunks)
✅ Files skipped from review due to trivial changes (1)
  • packages/cron/package.json
🚧 Files skipped from review as they are similar to previous changes (53)
  • packages/logger/package.json
  • packages/patch-injection/package.json
  • packages/mongo-adapter/package.json
  • packages/tracing/package.json
  • ee/apps/queue-worker/package.json
  • packages/peggy-loader/package.json
  • packages/jest-presets/package.json
  • packages/desktop-api/package.json
  • packages/release-changelog/package.json
  • packages/core-services/package.json
  • ee/apps/federation-service/package.json
  • packages/jwt/package.json
  • packages/http-router/package.json
  • apps/uikit-playground/package.json
  • ee/packages/federation-matrix/package.json
  • packages/message-parser/package.json
  • packages/ui-video-conf/package.json
  • ee/packages/omnichannel-services/package.json
  • apps/meteor/client/omnichannel/reports/components/BarChart.tsx
  • packages/core-typings/package.json
  • packages/fuselage-ui-kit/package.json
  • packages/instance-status/package.json
  • packages/omni-core/package.json
  • ee/packages/pdf-worker/package.json
  • apps/meteor/package.json
  • ee/packages/media-calls/package.json
  • ee/apps/account-service/package.json
  • ee/apps/omnichannel-transcript/package.json
  • ee/apps/presence-service/package.json
  • package.json
  • packages/release-action/package.json
  • packages/server-cloud-communication/package.json
  • packages/web-ui-registration/package.json
  • packages/models/package.json
  • packages/ui-avatar/package.json
  • packages/sha256/package.json
  • ee/packages/presence/package.json
  • packages/apps-engine/package.json
  • packages/base64/package.json
  • packages/message-types/package.json
  • packages/rest-typings/package.json
  • packages/eslint-config/package.json
  • packages/model-typings/package.json
  • ee/packages/ui-theming/package.json
  • packages/ui-contexts/package.json
  • packages/mock-providers/package.json
  • packages/node-poplib/package.json
  • apps/meteor/ee/server/services/package.json
  • ee/apps/authorization-service/package.json
  • packages/ui-client/package.json
  • packages/api-client/package.json
  • packages/tools/package.json
  • packages/ui-composer/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: 📦 Build Packages
  • GitHub Check: CodeQL-Build
  • GitHub Check: CodeQL-Build
🔇 Additional comments (6)
packages/agenda/package.json (1)

17-18: TypeScript patch bump looks good

Thanks for aligning this package with the repo-wide 5.9.3 upgrade. No issues spotted.

packages/server-fetch/package.json (1)

6-8: Patch bumps look good.

Both updates are patch-level and match the repo-wide tooling alignment; no issues spotted.

packages/storybook-config/package.json (1)

7-7: Dependency patch bumps look good

Tilde-pin upgrades to the latest patch releases keep us within the intended minor range while reducing drift risk. No compatibility concerns spotted.

Also applies to: 25-26, 32-32

packages/account-utils/package.json (1)

7-7: TypeScript patch bump looks safe

Patch upgrade keeps this package aligned with the workspace tooling; no issues spotted.

packages/livechat/package.json (1)

53-54: Confirm Node/toolchain constraints after babel-loader@10 upgrade.

babel-loader jumped from 9.x to 10.x, which now requires Node 18+ and webpack 5.92+. Please confirm the livechat build agents (and Volta config) already satisfy those minimums so CI/CD doesn’t break.

packages/i18n/package.json (1)

43-44: jest@~30.2.0 is available on npm Version 30.2.0 exists and is tagged ‘latest’; installs will succeed.

Comment on lines 62 to 63
"@typescript-eslint/eslint-plugin": "~5.60.1",
"@typescript-eslint/parser": "~5.60.1",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Upgrade ts-eslint stack for TS 5.9 compatibility.

TypeScript is now ~5.9.3, but @typescript-eslint/{parser,eslint-plugin} stay on 5.60.x, which only supports compilers ≤5.2. Lint/typecheck will crash on 5.9. Please bump the full ts‑eslint toolchain (parser, plugin, and matching eslint peer) to a release that explicitly supports TS 5.9 before merging.

@ggazzo ggazzo added the stat: QA assured Means it has been tested and approved by a company insider label Oct 8, 2025
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Oct 8, 2025
@ggazzo ggazzo merged commit 7809014 into develop Oct 8, 2025
88 of 91 checks passed
@ggazzo ggazzo deleted the chore/bump-deps branch October 8, 2025 18:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stat: QA assured Means it has been tested and approved by a company insider stat: ready to merge PR tested and approved waiting for merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants